KR101645837B1 - 에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들 - Google Patents

에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들 Download PDF

Info

Publication number
KR101645837B1
KR101645837B1 KR1020147027832A KR20147027832A KR101645837B1 KR 101645837 B1 KR101645837 B1 KR 101645837B1 KR 1020147027832 A KR1020147027832 A KR 1020147027832A KR 20147027832 A KR20147027832 A KR 20147027832A KR 101645837 B1 KR101645837 B1 KR 101645837B1
Authority
KR
South Korea
Prior art keywords
data
memory
delete delete
level
encoded
Prior art date
Application number
KR1020147027832A
Other languages
English (en)
Other versions
KR20140139537A (ko
Inventor
찬드라 씨. 바라나시
Original Assignee
마이크론 테크놀로지, 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크 filed Critical 마이크론 테크놀로지, 인크
Publication of KR20140139537A publication Critical patent/KR20140139537A/ko
Application granted granted Critical
Publication of KR101645837B1 publication Critical patent/KR101645837B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/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
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/256Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • 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/63Joint error correction and other techniques
    • H03M13/6331Error control coding in combination with equalisation
    • 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
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • 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
    • 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/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • 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/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • 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
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • H03M13/4146Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

에러 코딩 및 변조 기법들을 조합하기 위한 방법들 및 장치들이 여기에 설명된다. 하나 이상의 방법들은 선형 에러 정정 코드를 사용하에 데이터를 인코딩하는 단계, 인코딩된 데이터를 변조하는 단계, 변조된 데이터를 메모리에 기록하는 단계, 및 비터비 알고리즘 및 선형 에러 정정 코드 디코더를 사용하여 기록된 데이터를 디코딩하는 단계를 포함한다.

Description

에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들{APPARATUSES AND METHODS FOR COMBINING ERROR CODING AND MODULATIONS SCHEMES}
본 개시는 일반적으로 반도체 메모리 장치들 및 방법들에 관한 것이며, 보다 특히, 에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들에 관한 것이다.
메모리 디바이스들은 통상적으로, 컴퓨터들 또는 다른 전자 디바이스들에서의 내부의, 반도체, 집적 회로들로서 제공된다. 그 중에서도, 랜덤-액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 저항성 메모리(예로서, RRAM), 및 플래시 메모리를 포함한 많은 상이한 유형들의 메모리가 있다.
메모리 디바이스들은 광범위한 전자 기기들에 대해 휘발성 및 비-휘발성 데이터 저장 장치로서 이용된다. 단지 하나의 유형의 메모리인, 플래시 메모리는 통상적으로 높은 메모리 밀도들, 높은 신뢰성, 및 낮은 전력 소비를 허용하는 메모리 셀들의 다수의 어레이들을 포함한다. 비-휘발성 메모리는 예를 들면, 개인용 컴퓨터들, 휴대용 메모리 스틱들, 고체 상태 드라이브들(SSD들), 디지털 카메라들, 셀룰러 전화기들, MP3 플레이어들과 같은 휴대용 음악 플레이어들, 영화 플레이어들, 및 다른 전자 디바이스들에서 사용될 수 있다.
도 1은 본 개시의 다수의 실시예들에 따른 적어도 하나의 메모리 시스템을 포함한 컴퓨팅 시스템의 형태에 있는 장치의 블록도이다.
도 2는 본 개시의 다수의 실시예들에 따른 저-밀도 패리티 검사(LDPC) 코드와 신호 세트 확장을 조합하는 것을 예시한 기능 블록도이다.
도 3은 본 개시의 다수의 실시예들에 따라 생성된 트렐리스를 예시한다.
에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들이 제공된다. 일 예시적인 방법은 선형 에러 정정 코드를 사용하여 데이터를 인코딩하는 단계, 인코딩된 데이터를 변조하는 단계, 변조된 데이터를 메모리에 기록하는 단계, 및 비터비 알고리즘 및 선형 에러 정정 코드 디코더를 사용하여 기록된 데이터를 디코딩하는 단계를 포함할 수 있다.
BCH(Bose, Chaudhuri, 및 Hocquenghem) 코드들과 같은 대수적 에러-정정 코드들이 플래시 데이터에서 고정된 수의 에러들을 정정하기 위해 사용될 수 있다. 저-밀도 패리티 검사(Low-density parity-check; LDPC) 코드들은 이러한 BCH 코드들을 능가할 수 있다. 예를 들면, LDPC 코드들은 소프트 데이터(예로서, 신뢰성 데이터)를 갖고 디코딩될 수 있다.
저장 밀도가 증가함에 따라, 판독 동작들과 연관된 신호-대-잡음 비(SNR)는 감소할 수 있으며, 이것은 예를 들면, 판독 에러들을 방지하기 위해 보다 강한 에러-정정 코드들에 대한 요구를 이끌 수 있다. SNR을 증가시키기 위한 하나의 접근법은 예를 들면, 트렐리스-코딩 변조(trellis-coded modulation; TCM)를 통한 신호 세트의 확장을 포함한다. 예를 들면, 신호 세트의 확장은 이진 데이터를 다중레벨 데이터로 변환하는 것을 포함할 수 있다.
본 개시의 실시예들은 LDPC 및 TCM을 조합함으로써 증가된 SNR을 제공할 수 있다. 실시예들은 또한 SNR 이득을 증가시키기 위해 비터비 구성요소에 의해 생성된 소프트 데이터와 함께 디코더에 의해 생성된 소프트 데이터를 효과적으로 사용할 수 있다.
본 개시의 다음의 상세한 설명에서, 그 일부를 형성하며 본 개시의 하나 이상의 실시예들이 어떻게 실시될 수 있는지가 예시로서 도시되는 첨부한 도면들에 대한 참조가 이루어진다. 이들 실시예들은 이 기술분야의 숙련자들로 하여금 본 개시의 실시예들을 실시할 수 있게 하기에 충분히 상세히 설명되며, 다른 실시예들이 이용될 수 있고 프로세스, 전기적, 및/또는 구조적 변화들이 본 개시의 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다. 여기에 사용된 바와 같이, 지정자("N")는 그렇게 지정된 특정한 특징의 하나 이상이 본 개시의 하나 이상의 실시예들과 함께 포함될 수 있음을 표시한다.
여기에서의 도면들은 제 1 숫자 또는 숫자들이 도면 부호에 대응하며 나머지 숫자들이 도면에서의 요소 또는 구성요소를 식별하는 넘버링 관례를 따른다. 상이한 도면들 사이에서의 유사한 요소들 또는 구성요소들은 유사한 숫자들의 사용에 의해 식별될 수 있다. 이해될 바와 같이, 여기에서의 다양한 실시예들에 도시된 요소들은 본 개시의 다수의 부가적인 실시예들을 제공하기 위해 부가되고, 교환되며, 및/또는 제거될 수 있다. 또한, 도면들에 제공된 요소들의 비율 및 상대적인 규모는 본 개시의 다양한 실시예들을 예시하도록 의도되며 제한적인 의미로 사용되지 않도록 의도된다.
도 1은 본 개시의 다양한 실시예들에 따른 적어도 하나의 메모리 시스템(104)을 포함한 컴퓨팅 시스템(100)의 형태에 있는 장치의 블록도이다. 여기에 사용된 바와 같이, 메모리 시스템(104), 제어기(108), 또는 메모리 디바이스(110)는 또한 개별적으로 "장치"로 고려될 수 있다. 메모리 시스템(104)은 예를 들면 고체 상태 드라이브(SSD)일 수 있으며, 호스트(예로서, 물리적) 인터페이스(106), 제어기(108)(예로서, 프로세서 및/또는 다른 제어 회로), 및 다수의 메모리 디바이스들(110-1, ..., 110-N)(예로서, NAND 플래시 디바이스들과 같은 고체 상태 메모리 디바이스들)을 포함할 수 있고, 이것은 메모리 시스템(104)을 위한 저장 볼륨을 제공한다. 또 다른 실시예에서, 메모리 시스템(104)은 간단히 단일 메모리 디바이스일 수 있다.
도 1에 예시된 바와 같이, 제어기(108)는 복수의 채널들을 통해 호스트 인터페이스(106)에 및 메모리 디바이스들(110-1, ..., 110-N)에 결합되며 메모리 시스템(104) 및 호스트(102) 사이에서 데이터를 전달하기 위해 사용될 수 있다. 인터페이스(106)는 표준화된 인터페이스의 형태에 있을 수 있다. 예를 들면, 메모리 시스템(104)이 컴퓨팅 시스템(100)에서 데이터 저장을 위해 사용될 때, 인터페이스(106)는 다른 커넥터들 및 인터페이스들 중에서, 직렬 어드밴스트 기술 접속(serial advanced technology attachment; SATA), 주변 구성요소 상호 연결 익스프레스(peripheral component interconnect express; PCIe), 또는 범용 직렬 버스(USB)일 수 있다. 일반적으로, 그러나, 인터페이스(106)는 인터페이스(106)를 위한 호환 가능한 리텝터들을 가진 호스트(102) 및 메모리 시스템(104) 사이에서 제어, 어드레스, 데이터 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다.
호스트(102)는 다양한 다른 유형들의 호스트들 중에서, 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 이동 전화기, 또는 메모리 카드 판독기와 같은 호스트 시스템일 수 있다. 호스트(102)는 시스템 마더보드 및/또는 뒤판을 포함할 수 있으며 다수의 메모리 액세스 디바이스들(예로서, 다수의 프로세서들)을 포함할 수 있다. 호스트(102)는 또한 메모리 시스템(104)이 메모리 디바이스(예로서, 온-다이 제어기를 가진)인 경우와 같이, 메모리 제어기일 수 있다.
제어기(108)는 다른 동작들 중에서, 데이터 판독, 기록, 및 삭제 동작들을 제어하기 위해 다수의 메모리 디바이스들(110-1, ..., 110-N)(몇몇 실시예들에서, 단일 다이 상에서 다수의 메모리 어레이들일 수 있는)과 통신할 수 있다. 몇몇 실시예들에서, 제어기(108)는 다수의 메모리 디바이스들(110) 중 임의의 것 또는 모두와 동일한 다이 또는 상이한 다이 상에 있을 수 있다.
구체적으로 예시되지 않지만, 몇몇 실시예들에서, 제어기(108)는 제어기(108)를 메모리 디바이스들(110-1, ..., 110-N)에 결합하는 각각의 채널을 위한 이산 메모리 채널 제어기를 포함할 수 있다. 제어기(108)는 예를 들면, 다수의 메모리 디바이스들(110-1, ..., 110-N)로의 액세스를 제어하기 위한 및/또는 호스트(102) 및 메모리 디바이스들(110-1, ..., 110-N) 사이에서의 데이터 전달을 용이하게 하기 위한 하드웨어 및/또는 펌웨어(예로서, 하나 이상의 집적 회로들) 및/또는 소프트웨어의 형태의 다수의 구성요소들을 포함할 수 있다.
도 1에 예시된 바와 같이, 제어기(108)는 에러 정정 구성요소(107)(예로서, 에러 정정 코드(ECC) 엔진과 같은 인코더) 및 변조 구성요소(109)(예로서, TCM에서의 사용을 위한)를 포함할 수 있다. 에러 코딩 구성요소(107) 및 변조 구성요소(109)의 각각은 애플리케이션 특정 집적 회로(ASIC)와 같은 이산 구성요소들일 수 있거나 또는 구성요소들은 반드시 제어기(108)의 다른 부분들로부터 분리된 이산 물리 형태를 갖는 것은 아닌 제어기(108) 내에서의 회로에 의해 제공된 기능을 반영할 수 있다. 도 1에서 제어기(108) 내에서의 구성요소들로서 예시되지만, 에러 정정 구성요소(107) 및 변조 구성요소(109)의 각각은 제어기(108)의 외부에 있을 수 있거나 또는 제어기(108) 내에 위치된 다수의 구성요소들 및 제어기(108)의 외부에 위치된 다수의 구성요소들을 가질 수 있다.
에러 코딩 구성요소(107)는 호스트(102)로부터 수신된 데이터(예로서, 사용자 데이터)를 인코딩하며 메모리 디바이스들(110-1, ..., 110-N)과 같은 메모리 상에 저장(예로서 그것에 기록)되도록 구성될 수 있다. 예를 들면, 사용자 데이터는, 여기에 보다 상세히 설명되는 바와 같이, LDPC 코드와 같은 선형 에러 정정 코드를 사용하여 인코딩될 수 있다.
인코딩된 데이터는 그것에 대응하는 코드 레이트를 가질 수 있다. 코드 레이트는 비-중복적인 인코딩된 데이터의 비율을 나타낼 수 있다. 본 개시의 다수의 실시예들에서, 이진 인코딩된 데이터는 다중레벨 신호(예로서, 3-레벨 신호)로 변환될 수 있다. 예를 들면, 2에서 3까지의 신호 세트 확장이 사용될 수 있으며, 이것은 코드 레이트 손실 없이, 3-레벨 도메인에서 가장 가까운 신호 시퀀스들의 쌍들 사이에서의 유클리드 거리를 증가시킬 수 있다.
다수의 실시예들에서, 제어기(108)는 선형 에러 정정 코드 인코더를 사용하여 이진 데이터를 인코딩하고, 변조 기법을 사용하여 이진 데이터를 다중레벨 데이터로 변환하고, 다중레벨 데이터를 메모리에 기록하고, 메모리로부터 데이터를 판독하며, 비터비 알고리즘을 사용하여 판독된 데이터를 디코딩하며, 선형 에러 정정 코드 디코더를 통해 비터비 알고리즘을 사용하여 생성된 하드 데이터 및 소프트 데이터를 디코딩하도록 구성될 수 있다. 이진 데이터는 LDPC 코드를 사용하여 인코딩될 수 있으며 이진 데이터를 변환하기 위해 사용된 변조 기법은 TCM을 포함할 수 있다. 비터비 알고리즘은 소프트-출력 비터비 알고리즘(soft-output Viterbi algorithm; SOVA)을 포함할 수 있으며, 선형 에러 정정 코드 디코더는 LDPC 디코더를 포함할 수 있다. 다수의 실시예들에서, 제어기(108)는 SOVA 및 LDPC 디코더 사이에서 소프트 데이터를 반복적으로 상호 교환하도록 구성될 수 있다. SOVA는 그것이 입력 심볼들의 예전의 확률들을 고려하는 수정된 경로 메트릭을 사용하며, 결정의 신뢰성을 표시하는 소프트 출력을 생성한다는 점에서 통상적인 비터비 알고리즘과 상이할 수 있다. 제어기(108)와 연관된 부가적인 기능은 여기에 보다 상세히 설명된다.
다수의 메모리 디바이스들(110-1, ..., 110-N)은 메모리 셀들(예로서, 비-휘발성 메모리 셀들)의 다수의 어레이들을 포함할 수 있다. 어레이들은 예를 들면, NAND 아키텍처를 가진 플래시 어레이일 수 있다. 그러나, 실시예들은 특정한 유형의 메모리 어레이 또는 어레이 아키텍처에 제한되지 않는다. 메모리 셀들은 예를 들면, 다수의 물리적 페이지들을 포함한 다수의 블록들로 그룹핑될 수 있다. 다수의 블록들은 메모리 셀들의 평면에 포함될 수 있으며 어레이는 다수의 평면들을 포함할 수 있다. 일 예로서, 메모리 디바이스는 페이지당 8KB(킬로바이트들)의 사용자 데이터, 블록당 128 페이지들의 사용자 데이터, 평면당 2048 블록들, 및 디바이스당 16 평면들을 저장하도록 구성될 수 있다.
동작에 있어서, 데이터는 예를 들면, 데이터의 페이지로서 메모리(예로서, 시스템(104)의 메모리 디바이스들(110-1, ..., 110-N))로 기록되고 및/또는 그로부터 판독될 수 있다. 이와 같이, 데이터의 페이지는 메모리 시스템의 데이터 전달 크기로서 나타내어질 수 있다. 데이터는 섹터들(예로서, 호스트 섹터들)로서 불리우는 데이터 세그먼트들에서의 호스트(예로서, 호스트(102))로/로부터 전달될 수 있다. 이와 같이, 데이터의 섹터는 호스트의 데이터 전달 크기로서 나타내어질 수 있다.
데이터의 페이지가 그에 대응하는 메타데이터뿐만 아니라 다수의 바이트들의 사용자 데이터(예로서, 다수의 섹터들의 데이터를 포함한 데이터 페이로드)를 포함할 수 있지만, 데이터의 페이지의 크기는 종종 단지 다수의 바이트들의 사용자 데이터를 나타낼 수 있다. 일 예로서, 4KB의 페이지 크기를 가진 데이터의 페이지는 사용자 데이터에 대응하는 메타데이터의 다수의 바이트들(예로서, 32B, 54B, 224B 등)뿐만 아니라 4KB의 사용자 데이터(예로서, 512B의 섹터 크기를 가정한다면 8 섹터들)를 포함할 수 있다. 메타데이터는 사용자 데이터에 대응하는 다른 메타데이터 중에서, 에러 데이터(예로서, 에러 검출 및/또는 정정 코드 데이터) 및/또는 어드레스 데이터(예로서, 논리 어드레스 데이터)와 같은 무결성 데이터를 포함할 수 있다.
도 2는 본 개시의 다수의 실시예들에 따른, LDPC 코드와 신호 세트 확장(예로서, TCM)을 조합하는 것과 연관된 기능 블록도(220)이다. LDPC 코드는 대수적 에러 정정 코드들(예로서, BCH 코드들)과 비교하여 증가된 에러 정정 능력을 제공할 수 있으며 또한 예를 들면 소프트 데이터와 함께 디코딩될 수 있다.
다수의 실시예들에서, 신호 세트 확장과 LDPC 코드를 조합하는 것은 단지 LDPC 코드 또는 단지 신호 세트 확장만을 사용하여 달성된 SNR과 비교하여 SNR 이득을 야기할 수 있다. 예를 들면, 신호 세트 확장을 겪지 않고 주어진 레이트에서의 단일 레벨 셀 상에서 이진 LDPC 코드는 주어진 코드 레이트 손실을 갖고 대략 7의 양만큼 SNR을 증가시킬 수 있다. 유사하게, 신호 세트 확장을 겪은 동일한 또는 유사한 주어진 레이트에서의 비-LDPC 코드는 동일한 또는 유사한 주어진 코드 레이트 손실을 갖고 9의 양만큼 SNR을 증가시킬 수 있다. 그러나, 다수의 실시예들에서, 신호 세트 확장(예로서, 2-레벨에서 3-레벨로)을 겪은 동일한 또는 유사한 주어진 레이트에서의 이진 LDPC 코드는 동일한 또는 유사한 코드 레이트 손실을 갖고 대략 18의 양만큼 SNR을 증가시킬 수 있다.
도 2는 선형 에러 정정 코드 인코더(214)(예로서, LDPC 인코더)에 의해 수신된 호스트 데이터(212-1)(예로서, 이진 호스트 데이터)(Hk)를 예시한다. 호스트 데이터(212-1)는 LDPC 인코더(214)를 통해 인코딩되며 인코딩된 데이터(Uk)(216-1)는 프리코더(218)에 제공된다. 프리코더(218)는 인코딩된 데이터(216-1)에 대한 프리코딩 연산을 수행한다.
일 예로서, 프리코딩 연산은 이진 인코딩 데이터(예로서, Uk(216-1))를 프리코딩된 데이터(222)(예로서, Vk)로 변환하는 (1/(1 xor D) 연산일 수 있다. 프리코더(218)에 의해 출력된 프리코딩된 데이터(Vk)는 연산자(224)에 의해 수신된다. 연산자(224)는 (1+D) 연산을 통해 이진 프리코딩 데이터(Vk)를 다중레벨 데이터(226)(예로서, Xk)로 변환할 수 있다. 이와 같이, 신호 세트는 이진 도메인(예로서, 2-레벨)에서 다중레벨 도메인(예로서, 3-레벨)으로 확장된다. 일 예로서, Uk 데이터(216-1)의 3-레벨 등가일 수 있는, Xk 데이터(226)는 메모리(예로서, 플래시 메모리(210))에 기록될 수 있다.
예시적인 연산들에서, D는 1 단위의 지연에 대응할 수 있다. 예를 들면, 연산(yn=xn+x(n-1))에서, 현재 샘플(xn)은 이전 샘플(x(n-1))에 부가된다. 이것은 1이 현재 시간 인스턴트(xn)에서의 샘플을 나타내며 D가 1 단위의 지연(예로서, x(n-1))을 나타내는, 표현(1+D)에 의해 나타내어질 수 있다.
도 2에 예시된 예에서, (1/(1 xor D)) 프리코딩 연산 및 (1+D) 연산의 조합은 TCM에 관련하여 이용되며, 이것은 신호 세트 확장(예로서, 이진 데이터의 다중레벨 데이터로의 변환)을 야기한다. 신호 세트 확장은 예를 들면, 3-레벨 도메인에서의 가장 가까운 신호 시퀀스들의 쌍들 사이에서의 유클리드 거리를 증가시킬 수 있다. 다수의 실시예들에서, 신호 세트 확장은 LDPC와 연관된 코드 레이트 손실 없이 성취될 수 있다. 신호 세트 확장(예로서, TCM) 동안, 다수의 상태들(예로서, 2-상태, 3-레벨 트렐리스)을 포함할 수 있는, 다중레벨 트렐리스가 생성될 수 있으며, 그 예는 도 3에 대하여 추가로 상세히 논의된다.
다중레벨 데이터(Xk)와 연관된 신호 잡음(nk)(예로서, Xk+nk)은 메모리(210)로부터 판독되며 비터비 구성요소(234)를 통해 디코딩될 수 있다. 다수의 실시예들에서, 및 도 2에 예시된 바와 같이, 비터비 구성요소(234)는 판독 데이터(232)에 대응하는 소프트 데이터(예로서, 로그 우도 비들(LLR들))를 생성할 수 있는 SOVA(예로서, 2-상태 SOVA)일 수 있다. 비터비 구성요소(234)에 의해 생성된 소프트 데이터는 이들 LDPC 코드 비트들에 대응하는 신뢰성 메트릭들과 함께 LDPC 코드 비트들을 포함할 수 있다. LLR들은 두 개의 모델들의 피트(예로서, 코드 시퀀스에서 "0" 및 "1")를 비교하기 위해 사용될 수 있다. 예를 들면, "0"인 비트의 확률이 0.7이며 "1"인 비트의 확률이 0.3이면, LLR은 log(0.7/0.3)와 등가이다.
디코딩된 하드 및 소프트 데이터(Uk)는 비터비 구성요소(234)로부터 출력되며 LDPC 디코더(236)를 사용하여 추가로 디코딩될 수 있다. 결과적인 디코딩 호스트 데이터(Hk)(212-2)는 요청 엔티티(예로서, 도 1에 도시된 호스트(102)와 같은 호스트)에 제공될 수 있다. 다수의 실시예들에서, 디코딩된 호스트 데이터(212-2)는 예를 들면, 이전 LDCP 접근법들과 비교하여 증가된 SNR 이득을 포함한다.
다수의 실시예들에서, 비터비 구성요소(234) 및 LDPC 디코더(236) 사이에서의 반복적 소프트-데이터 상호 교환이 Uk(216-2)와 연관된 소프트 데이터를 추가로 정제하기 위해 도입될 수 있다. 예를 들면, LDPC 디코더(236)는 또한 소프트 데이터(예로서, LLR들)를 생성할 수 있다. 예를 들면, LDPC 디코더(236)는 호스트 데이터(Hk)(212-2)와 함께 소프트 데이터를 출력할 수 있으며 이러한 소프트 데이터는 추가 코딩을 위해 비터비 구성요소(234)로 및 그 후 다시 LDPC 디코더(236)(예로서, 반복적 프로세스에서)로 전송될 수 있다. 다수의 실시예들에서, 이러한 반복적 프로세스는 예를 들면, 데이터(216-2)와 연관된 잡음이 원하는 임계 레벨로 감소될 때까지 계속될 수 있다.
도 3은 본 개시의 다수의 실시예들 중 하나에 따라 생성될 수 있는 트렐리스(330)를 예시한다. 일 예로서, 트렐리스(330)는 도 2에 도시된 구성요소들(218 및 224)과 같은 구성요소들에 의해 수행된 연산들을 통해 생성될 수 있다. 트렐리스(330)는 또한, 트렐리스 변조로서 불리우는, TCM 변조 기법에서 이용될 수 있는 2-상태 비터비 트렐리스(예로서, 상태 1 및 상태 0)이다. TCM은 다른 변조 기법들과 비교하여 증가된 송신 효율성을 야기할 수 있다.
도 3에 예시된 예에서, LDPC 인코더(314)는 데이터(예로서, 호스트 데이터(212-1))를 인코딩하기 위해 사용될 수 있다. 인코딩된 데이터는 신호 세트가 확장되도록(예로서, 이진 도메인에서 3-레벨 도메인으로) TCM을 겪을 수 있다. 예를 들면, 도 2와 관련하여 설명된 바와 같이, (1/(1 xor D)) 연산 및 (1+D) 연산의 조합은 314로부터 출력된 데이터에 대해 수행될 수 있으며, 이것은 트렐리스(330)와 같은 트렐리스의 신호 확장 및 생성을 야기할 수 있다. 그 결과, 2-상태 트렐리스(330)에서의 두 개의 가장 가까운 3-레벨 신호 시퀀스들 사이에서의 유클리드 제곱 거리는 코딩되지 않은 3-레벨 신호 시퀀스들의 것의 2배일 수 있다. 다수의 실시예들에서, 트렐리스(330)의 레벨들은 대략 4 내지 3 볼트들의 전압 값들을 포함할 수 있다.
트렐리스(330)는 "상태 0"(예로서, 상태들(338-1, 338-2, 및 338-3)) 및 "상태 1"(예로서, 상태(342-1, 342-2, 및 342-3))을 포함한 두 개의 상태들을 포함한다. 도 3에 예시된 바와 같이, 상태들 사이에서의 각각의 라인은 시퀀스 경로를 표현하며 각각의 경로는 비트(예로서, LDPC 인코더 출력 비트) 및 대응하는 3-레벨 신호를 갖고 라벨링된다. 예를 들면, 경로들(344-1 및 344-2)은 "0"의 대응하는 3-레벨 신호를 가진 비트("0")를 표시한다. 유사하게, 예를 들면, 경로들(348-1 및 348-2)은 비트들("0") 및 "2"의 대응하는 3-레벨 신호들을 표시하는 반면, 경로들(346-1...346-4)은 "1"의 대응하는 3-레벨 신호들을 가진 비트들("1")을 표시한다.
상태 시퀀스(0-0-0)에 의해 형성된 경로들의 에지들 상에서의 3-레벨 라벨-시퀀스는 0-0에 의해 주어질 수 있으며(예로서, 경로들(344-1 및 344-2)), 반면에 상태 시퀀스(0-1-0)에 의해 형성된 경로들의 에지들 상에서의 3-레벨 라벨-시퀀스는 1-1(예로서, 경로들(346-1 및 346-2))에 의해 주어질 수 있다. 이러한 일 예에서, 두 개의 경로들 사이에서의 유클리드 제곱 거리는 2와 같다. 예를 들면, (1-0)2+(1-0)2=2. 다른 경로 쌍들이 항상 그것들 사이에 보다 많은 거리를 가질 것이다.
트렐리스(330)는 트렐리스의 적어도 하나의 다른 레벨에 대해 특정한 관계를 가진 트렐리스의 레벨을 포함할 수 있다. 예를 들면, 도 2의 이진 사용자 데이터(Uk)(216)는 도 2의 프리코더(218)를 통해 수행된 (1/(1 xor D)) 연산 및 도 2의 연산자(224)에 의해 수행된 (1+D) 연산에 기초하여 3-레벨 데이터(Xk)(226)와 관련 있을 수 있다. 이러한 연산들을 통해 달성된 관계는 서로에 독립적인 레벨들에 대응하는 확장되지 않은 신호 세트들(예로서, 2-레벨, 3-레벨, 또는 4-레벨 데이터)과 비교하여 잡음에 대한 강건성(예로서, SNR 이득)을 야기할 수 있다.
도 3에서, 경로들(344-1, 344-2, 346-1, 346-2, 346-3, 346-4, 348-1, 및 348-2)의 값들은 Uk/Xk를 표현하며, Uk는 도 2에 도시된 216-1과 같은 이진 데이터이고, Xk는 도 2에 도시된 데이터(226)와 같은 변조된 데이터(예로서, 3-레벨 데이터)이다. 예를 들면, 여기에 추가로 논의될 바와 같이, 경로(348-1)는 0의 Uk 값, 2의 Xk 값을 가지며 0/2로 라벨링된다. 이들 경로들은 레벨들의 시퀀스에 의해 취해진 가능한 경로들에 대응할 수 있으며, 이러한 경로는 그것이 트렐리스(330)를 통과하는 바와 같이 다중레벨 데이터에 의해 사용된 경로를 식별하기 위해 비터비 구성요소(예로서, 도 2에 도시된 구성요소(234))에 의해 이용될 수 있어서, 어떤 경로 정보도 없는 구성요소와 비교하여 비터비 구성요소의 증가된 성능을 야기한다.
일 예로서, 도 2에 도시된 프리코더(218)와 같은, 프리코더에 의해 수신된 이진 사용자 데이터(Uk={1 0 0 1 0 1 0 1 1...})를 고려하자. Uk에 대한 특정한 연산(예로서, 1/(1 xor D) 연산)을 수행함으로써, 프리코딩된 데이터(Vk)가 결정될 수 있다. 예를 들면, Vk = xor(Uk, Vk -1)은 Vk={1 1 1 0 0 1 1 0 1...}을 야기한다.
Vk에 대한 (1+D) 연산을 이용하는 것은 3-레벨 데이터(Xk)의 생성을 야기할 수 있다. 예를 들면, Xk = {1 2 2 1 0 1 2 1 1...}이도록 Xk = Vk + Vk -1. 이와 같이, 트렐리스(330)의 레벨들(0, 1, 및 2) 사이에서, 특히 Uk=1, Xk=1인 경우에, Uk 및 Xk 사이에서의 관계가 있다. 이러한 관계는 서로에 독립적인 레벨들을 가진 메모리 셀들에 비교하여 증가된 SNR 이득을 야기할 수 있다.
상기 예에서, 짝수의 1들이 시퀀스에서의 특정한 포인트에서 Uk 시퀀스에서 통과된다면, 경로들(344-1 및 344-2)에서처럼, 0의 Uk 값은 Xk=0을 생성한다. 이것은 상태 0(예로서, 상태들(338-1, 338-2, 및 338-3))으로서 불리울 수 있다. 홀수의 1들이 시퀀스에서의 특정한 포인트에서 Uk 시퀀스에서 통과된다면, 경로들(348-1 및 348-2)에서처럼 0의 Uk 값은 Xk=2를 생성한다. 이것은 상태 1(예로서, 상태들(342-1, 342-2, 및 342-3))로서 불리울 수 있다.
도 2의 232에 예시된 바와 같이, TCM으로부터 출력된 데이터(예로서, 다중레벨 데이터)는 메모리(예로서, 플래시 메모리)(310)에 기록되며 디코딩을 위해 SOVA로 전송될 수 있다. 다수의 실시예들에서, SNR 이득은 메모리(예로서, 메모리(310))로부터 판독된 소프트 데이터로부터 이진 LDPC 코드 비트들을 복원하기 위해 트렐리스(예로서, 트렐리스(330))에 대해 비터비 알고리즘을 사용함으로써 실현될 수 있다. 소프트 데이터는 도 3에 대하여 논의된 3-레벨 신호들(예로서, Xk)의 근사들을 포함할 수 있다.
특정 실시예들이 여기에 예시되고 설명되지만, 이 기술분야의 수련자들은 동일한 결과들을 달성하기 위해 산출된 배열이 도시된 특정 실시예들을 위해 대체될 수 있다는 것을 이해할 것이다. 이러한 개시는 본 개시의 다양한 실시예들의 각색들 또는 변화들을 커버하도록 의도된다. 상기 설명은 제한적인 방식이 아닌, 예시적인 방식으로 이루어진다는 것이 이해될 것이다. 상기 실시예들의 조합, 및 여기에 구체적으로 설명되지 않은 실시예들은 상기 설명을 검토할 때 이 기술분야의 숙련자들에게 명백할 것이다. 본 개시의 다양한 실시예들의 범위는 상기 구조들 및 방법들이 사용되는 다른 애플리케이션들을 포함한다. 그러므로, 본 개시의 다양한 실시예들의 범위는 이러한 청구항들이 자격을 부여받은 전체 범위의 등가물들과 함께, 첨부된 청구항들을 참조하여 결정되어야 한다.
앞서 말한 상세한 설명에서, 다양한 특징들은 개시를 간소화하는 목적을 위해 단일 실시예로 함께 그룹핑된다. 이러한 개시의 방법은 개시된 실시예들이 각각의 청구항에 명확하게 제시된 것보다 많은 특징들을 사용해야 한다는 의도를 반영하는 것으로서 해석되지는 않는다. 오히려, 다음 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 모든 특징들보다 적게 있다. 따라서, 다음의 청구항들은, 별개의 실시예로서 독립적인 각각의 청구항을 갖고, 상세한 설명으로 통합된다.

Claims (38)

  1. 메모리를 동작시키기 위한 방법에 있어서,
    선형 에러 정정 코드를 사용하여 데이터를 인코딩하는 단계;
    상기 인코딩된 데이터를 변조시키는 단계로서, (1/(1 xor D)) 프리코더 연산을 통해 상기 인코딩된 데이터를 프리코딩하는 단계; 및 상기 프리코딩된 에러 코딩 데이터에 대한 (1+D) 연산을 수행하는 단계를 포함하고, D는 1 단위의 지연에 대응하는, 상기 인코딩된 데이터를 변조시키는 단계;
    상기 변조된 데이터를 메모리에 기록하는 단계; 및
    비터비(Viterbi) 알고리즘 및 선형 에러 정정 코드 디코더를 사용하여 상기 기록된 데이터를 디코딩하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  2. 청구항 1에 있어서,
    데이터를 인코딩하는 단계는 저 밀도 패리티 검사(low density parity check: LDPC) 코드를 사용하여 데이터를 에러 코딩하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  3. 청구항 1에 있어서,
    상기 인코딩된 데이터를 변조시키는 단계는 상기 인코딩된 데이터에 대한 트렐리스 코딩 변조(trellis coded modulation: TCM)를 수행하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    변조 기법을 수행하는 단계는 상기 인코딩된 데이터의 신호 세트를 확장시키는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  5. 청구항 3에 있어서,
    TCM을 수행하는 단계는 다중레벨 트렐리스를 생성하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  6. 청구항 5에 있어서,
    상기 다중레벨 트렐리스를 생성하는 단계는, 상기 인코딩된 데이터를 프리코딩하는 단계 및 상기 (1+D) 연산을 수행하는 단계를 통해 상기 다중레벨 트렐리스를 생성하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  7. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 인코딩된 데이터를 변조시키는 단계는 상기 인코딩된 데이터와 연관된 두 개의 가장 가까운 다중-레벨 시퀀스들 사이에서의 유클리드 제곱 거리를 증가시키는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  8. 청구항 7에 있어서,
    상기 인코딩된 데이터를 변조시키는 단계는 상기 인코딩된 데이터를 다중-레벨 데이터로 변환하는 단계를 포함하고,
    상기 다중-레벨 데이터에서의 두 개의 가장 가까운 다중-레벨 시퀀스들 사이에서의 유클리드 제곱 거리는 상기 인코딩된 데이터와 연관된 두 개의 가장 가까운 다중-레벨 시퀀스들 사이에서의 상기 유클리드 제곱 거리의 것의 두 배인, 메모리를 동작시키기 위한 방법.
  9. 청구항 8에 있어서,
    상기 인코딩된 데이터를 다중-레벨 데이터로 변환하는 단계는, LDPC 코드 레이트의 손실 없이 상기 인코딩된 데이터를 다중-레벨 데이터로 변환하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  10. 청구항 8에 있어서,
    상기 메모리를 동작시키는 것은 상기 메모리로부터 데이터를 판독하는 것 및 판독된 데이터를 비터비 구성요소 및 LDPC 디코더에 제공하는 것을 포함하는, 메모리를 동작시키기 위한 방법.
  11. 메모리를 동작시키기 위한 방법에 있어서,
    메모리로부터 데이터를 판독하는 단계; 및
    비터비 알고리즘 및 선형 에러 정정 코드 디코더를 사용하여 상기 판독된 데이터를 디코딩하는 단계를 포함하며,
    상기 판독된 데이터는, (1/(1 xor D)) 프리코더 연산을 통해 판독된 데이터를 프리코딩하는 것에 의해 그리고 상기 프리코딩된 데이터에 대해 수행된 (1+D) 연산을 통해 변조된 데이터이며, D는 1 단위의 지연에 대응하고,
    상기 판독된 데이터는, 선형 에러 정정 코드를 사용하여 인코딩된 데이터를 포함하는, 메모리를 동작시키기 위한 방법.
  12. 청구항 11에 있어서,
    상기 판독된 데이터를 디코딩하는 단계는 상기 판독된 데이터를 디코딩하기 위해 소프트-출력 비터비 알고리즘(soft-output Viterbi algorithm: SOVA) 및 LDPC 디코더를 사용하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  13. 청구항 11에 있어서,
    상기 판독된 데이터를 디코딩하는 단계는 소프트 및 하드 데이터를 생성하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  14. 청구항 13에 있어서,
    SOVA 및 LDPC 디코더를 사용하여 상기 판독된 데이터를 디코딩하는 단계는 2-상태 SOVA를 사용하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  15. 청구항 13에 있어서,
    SOVA 및 LDPC 디코더를 사용하여 상기 판독된 데이터를 디코딩하는 단계는 상기 SOVA를 사용하여 LLR들을 생성하는 단계를 포함하는, 메모리를 동작시키기 위한 방법.
  16. 장치에 있어서,
    메모리;
    상기 메모리에 결합된 제어기;
    상기 제어기에 결합되며 이진 데이터를 인코딩하도록 구성된 에러 정정 코드 인코더; 및
    상기 제어기에 결합되며, (1/(1 xor D)) 프리코더 연산, 프리코딩된 데이터에 대한 (1+D) 연산 수행, 및 상기 인코딩된 이진 데이터의 신호 세트의 확장을 통해 상기 인코딩된 이진 데이터를 변조하도록 구성된 변조 구성요소를 포함하며, D는 1 단위의 지연에 대응하고,
    상기 제어기는:
    상기 변조된 데이터를 상기 메모리에 기록하는 것;
    상기 메모리로부터 상기 변조된 데이터를 판독하는 것; 및
    비터비 알고리즘을 사용하여 상기 판독된 변조된 데이터를 디코딩하는 것을 제어하도록 구성되는, 장치.
  17. 청구항 16에 있어서,
    상기 제어기에 결합되며 상기 비터비 알고리즘에 의해 생성된 하드 데이터 및 소프트 데이터를 디코딩하도록 구성된 선형 에러 정정 코드 디코더를 더 포함하는, 장치.
  18. 청구항 16에 있어서,
    상기 에러 정정 코드 인코더는 저 밀도 패리티 검사(LDPC) 코드를 사용하여 이진 데이터를 인코딩하도록 더 구성되는, 장치.
  19. 청구항 16 내지 청구항 18 중 어느 한 항에 있어서,
    상기 변조 구성요소는 트렐리스 코딩 변조(TCM)를 사용하여 상기 신호 세트를 확장시키도록 더 구성되는, 장치.
  20. 청구항 17에 있어서,
    하드 데이터 및 소프트 데이터를 디코딩하는 것을 제어하도록 구성되는 상기 제어기는 소프트-출력 비터비 알고리즘(SOVA) 및 LDPC 디코더를 사용하여 하드 데이터 및 소프트 데이터를 디코딩하는 것을 제어하도록 구성되는 상기 제어기를 포함하는, 장치.
  21. 청구항 19에 있어서,
    상기 TCM은 상기 (1/(1 xor D)) 프리코더 연산을 사용하며, 그 후 상기 (1+D) 연산을 사용하여 상기 인코딩된 이진 데이터에 대해 수행되는, 장치.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
KR1020147027832A 2012-03-08 2013-03-01 에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들 KR101645837B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/415,422 2012-03-08
US13/415,422 US8892986B2 (en) 2012-03-08 2012-03-08 Apparatuses and methods for combining error coding and modulation schemes
PCT/US2013/028678 WO2013134071A1 (en) 2012-03-08 2013-03-01 Apparatuses and methods for combining error coding and modulation schemes

Publications (2)

Publication Number Publication Date
KR20140139537A KR20140139537A (ko) 2014-12-05
KR101645837B1 true KR101645837B1 (ko) 2016-08-04

Family

ID=49115167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147027832A KR101645837B1 (ko) 2012-03-08 2013-03-01 에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들

Country Status (7)

Country Link
US (2) US8892986B2 (ko)
EP (1) EP2823399B1 (ko)
JP (1) JP6016952B2 (ko)
KR (1) KR101645837B1 (ko)
CN (1) CN104303155B (ko)
TW (1) TWI510000B (ko)
WO (1) WO2013134071A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892986B2 (en) * 2012-03-08 2014-11-18 Micron Technology, Inc. Apparatuses and methods for combining error coding and modulation schemes
RU2573243C2 (ru) 2013-10-28 2016-01-20 Общество с ограниченной ответственностью "Топкон Позишионинг Системс" Способ и устройство для измерения текущего отношения сигнал/шум при декодировании ldpc-кодов (варианты)
US9582361B2 (en) 2014-05-20 2017-02-28 Seagate Technology Llc Fixed point conversion of LLR values based on correlation
US9904591B2 (en) 2014-10-22 2018-02-27 Intel Corporation Device, system and method to restrict access to data error information
US10388400B2 (en) * 2015-05-18 2019-08-20 SK Hynix Inc. Generalized product codes for flash storage
US9740558B2 (en) 2015-05-31 2017-08-22 Intel Corporation On-die ECC with error counter and internal address generation
US10127101B2 (en) 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
CN110463082B (zh) * 2017-06-07 2020-11-17 华为技术有限公司 具有受控比特概率的传输系统
US10886947B2 (en) * 2018-12-20 2021-01-05 Toshiba Memory Corporation Efficient decoding of n-dimensional error correction codes
CN110008054B (zh) * 2019-02-25 2023-05-12 西南交通大学 一种用于存储器差错控制的多级读取译码的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236197A1 (en) * 2005-04-01 2006-10-19 Chien-Ching Lin Transmission method combining trellis coded modulation and low-density parity check code and architecture thereof
US20110258509A1 (en) * 2006-03-31 2011-10-20 Aditya Ramamoorthy Multi-Level Signal Memory with LDPC and Interleaving

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2668455B2 (ja) * 1990-12-20 1997-10-27 富士通株式会社 ビタビ復調制御方式
US5550683A (en) 1992-12-11 1996-08-27 Eastman Kodak Company Magnetic recording channel employing a non-ideal d.c.-free equalizer and a d.c.-free modulation code
JPH08235593A (ja) * 1994-10-31 1996-09-13 Hitachi Maxell Ltd 光記録媒体並びにその記録・再生方法及び装置
US5968198A (en) 1996-08-16 1999-10-19 Ericsson, Inc. Decoder utilizing soft information output to minimize error rates
JP2000312234A (ja) * 1999-04-27 2000-11-07 Sony Corp ブランチメトリックおよびセクター算出方法とその装置、および、その装置を用いた復号装置
JP4198904B2 (ja) * 2001-06-11 2008-12-17 富士通株式会社 記録再生装置、信号復号回路、エラー訂正方法、及び反復型復号器
JP3578736B2 (ja) * 2001-08-07 2004-10-20 Necマイクロシステム株式会社 ブランチメトリック算出装置およびその算出方法
JP2006500714A (ja) * 2002-09-26 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビタビビット検出方法および装置
US7401283B2 (en) 2004-09-28 2008-07-15 Broadcom Corporation Amplifying magnitude metric of received signals during iterative decoding of LDPC (Low Density Parity Check) code and LDPC coded modulation
US7486456B2 (en) * 2004-12-17 2009-02-03 Stmicroelectronics, Inc. Finite field based short error propagation modulation codes
KR100860504B1 (ko) 2005-06-09 2008-09-26 삼성전자주식회사 이동통신 시스템에서 송수신 장치 및 방법
US7848465B2 (en) * 2007-04-02 2010-12-07 Broadcom Corporation Joint decoding of ISI (inter-symbol interference) channel and modulation codes
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US7752531B2 (en) 2007-09-12 2010-07-06 Seagate Technology Llc Defect sensing Viterbi based detector
JP5397367B2 (ja) * 2008-02-26 2014-01-22 日本電気株式会社 復号装置、復号方法及びプログラム
US8238454B2 (en) 2008-04-01 2012-08-07 Harris Corporation System and method for communicating data using efficient fast fourier transform (FFT) for orthogonal frequency division multiplexing (OFDM) demodulation
CN101567752B (zh) 2008-04-23 2012-08-08 中国科学院微电子研究所 一种基于低密度奇偶校验码的自适应编解码方法
JP5009418B2 (ja) * 2008-06-09 2012-08-22 パイオニア株式会社 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
KR20090130808A (ko) 2008-06-16 2009-12-24 한국전자통신연구원 디지털 케이블 송수신 시스템에서 적응/가변형 변복조 장치
US8413029B2 (en) 2009-01-16 2013-04-02 Lsi Corporation Error correction capability adjustment of LDPC codes for storage device testing
WO2011059166A1 (ko) 2009-11-13 2011-05-19 한국전자통신연구원 통신 시스템에서 데이터 수신 장치 및 방법
US8566683B2 (en) * 2009-12-28 2013-10-22 Nxp, B.V. Power-reduced preliminary decoded bits in viterbi decoders
US8516331B2 (en) * 2010-01-29 2013-08-20 Broadcom Corporation Systems for high-speed backplane applications using FEC encoding
EP2383949B1 (en) 2010-04-29 2016-01-06 Xieon Networks S.à r.l. Method and arrangement for signal processing in a communication system
US8892986B2 (en) * 2012-03-08 2014-11-18 Micron Technology, Inc. Apparatuses and methods for combining error coding and modulation schemes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236197A1 (en) * 2005-04-01 2006-10-19 Chien-Ching Lin Transmission method combining trellis coded modulation and low-density parity check code and architecture thereof
US20110258509A1 (en) * 2006-03-31 2011-10-20 Aditya Ramamoorthy Multi-Level Signal Memory with LDPC and Interleaving

Also Published As

Publication number Publication date
CN104303155A (zh) 2015-01-21
TWI510000B (zh) 2015-11-21
JP6016952B2 (ja) 2016-10-26
US8892986B2 (en) 2014-11-18
EP2823399A1 (en) 2015-01-14
US9251000B2 (en) 2016-02-02
TW201342812A (zh) 2013-10-16
US20130238952A1 (en) 2013-09-12
JP2015513866A (ja) 2015-05-14
KR20140139537A (ko) 2014-12-05
WO2013134071A1 (en) 2013-09-12
EP2823399A4 (en) 2015-12-09
EP2823399B1 (en) 2017-10-18
US20150074498A1 (en) 2015-03-12
CN104303155B (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
KR101645837B1 (ko) 에러 코딩 및 변조 기법들을 조합하기 위한 장치들 및 방법들
US9734012B2 (en) Data encoding in solid-state storage devices
US10437668B2 (en) Memory controller, memory system, and method for controlling memory system
US8713411B2 (en) Encoding and/or decoding memory devices and methods thereof
KR20170056407A (ko) 데이터의 인코딩과 디코딩을 위한 메모리 시스템
JP5723967B2 (ja) ソリッド・ステート・ストレージ・デバイスのsレベル・ストレージに入力データを記録するための方法、エンコーダ装置、およびソリッド・ステート・ストレージ・デバイス
US9582359B2 (en) Write mapping to mitigate hard errors via soft-decision decoding
US20120240006A1 (en) Trellis-coded modulation in a multi-level cell flash memory device
JP2014150528A (ja) 選択的なバイナリ復号および非バイナリ復号を用いるフラッシュ・メモリ内の検出および復号
KR20150004732A (ko) 저밀도 패리티-검사(ldpc) 디코더들에서 로그-우도비(llr) 완충
JP2013524609A5 (ko)
KR20150129325A (ko) 솔리드 스테이트 메모리에 저장된 데이터 디코딩
US20190026182A1 (en) Methods and apparatuses for error correction
JP2019125910A (ja) メモリシステム
US9304851B2 (en) Decoding with log likelihood ratios stored in a controller
US10326473B2 (en) Symbol-based coding for NAND flash devices
US10944424B1 (en) Error correction with multiple LLR-LUTS for a single read
US10855314B2 (en) Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords
US9715430B2 (en) Controller for a solid-state drive, and related solid-state drive
US9639421B2 (en) Operating method of flash memory system
Xu Data reliability and error correction for NAND Flash Memory System
KR101361238B1 (ko) 간섭 채널 환경에서의 오류 정정 방법 및 회로, 이를 이용한 플래시 메모리 장치
KR101428849B1 (ko) 간섭 채널 환경에서의 저밀도 패리티 검사를 이용한 오류 정정 방법 및 회로, 이를 이용한 플래시 메모리 장치
JP2023085175A (ja) メモリ一致低密度パリティ検査符号化方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190724

Year of fee payment: 4