KR101466695B1 - 멀티 비트 레벨 데이터의 부호화 및 복호화 방법 - Google Patents

멀티 비트 레벨 데이터의 부호화 및 복호화 방법 Download PDF

Info

Publication number
KR101466695B1
KR101466695B1 KR1020080040877A KR20080040877A KR101466695B1 KR 101466695 B1 KR101466695 B1 KR 101466695B1 KR 1020080040877 A KR1020080040877 A KR 1020080040877A KR 20080040877 A KR20080040877 A KR 20080040877A KR 101466695 B1 KR101466695 B1 KR 101466695B1
Authority
KR
South Korea
Prior art keywords
symbol
bit
transmission
bit level
symbols
Prior art date
Application number
KR1020080040877A
Other languages
English (en)
Other versions
KR20090114972A (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 KR1020080040877A priority Critical patent/KR101466695B1/ko
Priority to US12/429,718 priority patent/US8656258B2/en
Publication of KR20090114972A publication Critical patent/KR20090114972A/ko
Application granted granted Critical
Publication of KR101466695B1 publication Critical patent/KR101466695B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency 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/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]
    • 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

Landscapes

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

Abstract

멀티 비트 레벨 데이터의 부호화 및 복호화 방법이 개시된다. 상기 멀티 비트 레벨 데이터의 부호화 방법은 전송심볼에 따라 발생될 수 있는 오류패턴의 범위를 결정하는 결정단계; 및 상기 오류패턴의 범위에 기초하여 상기 전송심볼과 상응하는 P(P는 2이상의 자연수)비트 레벨 중에서 M(M은 상기 P보다 작은 자연수) 비트 레벨은 부호화하고 (P-M) 비트 레벨은 부호화하지 않는 단계를 포함할 수 있다.
반도체 메모리 장치, 부호화, 복호화

Description

멀티 비트 레벨 데이터의 부호화 및 복호화 방법{Encoding and decoding method of multi bit level data}
본 발명은 부호화 및 복호화 기술에 관한 것으로, 보다 상세하게는 멀티 비트 레벨 데이터의 부호화 및 복호화 방법에 관한 것이다.
일반적인 반도체 메모리 장치 또는 통신 시스템은 상기 반도체 메모리 장치에 저장되는 심볼(또는, 데이터) 또는 상기 통신 시스템의 송신단으로부터 제공되는 심볼을 보호하기 위해 오류 제어 부호(error control code)를 사용할 수 있다.
오류 제어 부호는 부호화 과정과 복호화 과정을 거치는데, 부호화된 데이터는 패러티(parity) 비트와 정보(information)비트의 조합으로 이뤄질 수 있으며, 상기 부호화된 데이터의 복호를 통해 데이타의 오류를 줄일 수 있다.
예컨대, 멀티비트 플래시 메모리 장치의 경우, 오류 제어 부호를 적용하여 데이터의 오류를 줄일 수 있지만, 패리티 비트를 추가해야 하기 때문에 셀당 정보비트가 줄어들 수 있다. 셀당 정보비트가 줄어드는 경우 플래시 메모리 장치는 실질적으로 저장할 수 있는 정보량이 줄어들게 된다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 다수의 멀티 비트 레벨 중에서 일부의 멀티 비트 레벨만 부호화하여 정보비트의 개수를 늘일 수 있는 멀티 비트 레벨의 부호화 및 복호화 방법을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 멀티 비트 레벨 데이터의 부호화 방법은, 전송심볼에 따라 발생될 수 있는 오류패턴의 범위를 결정하는 결정단계; 및 상기 오류패턴의 범위에 기초하여 상기 전송심볼과 상응하는 P(P는 2이상의 자연수)비트 레벨 중에서 M(M은 상기 P보다 작은 자연수) 비트 레벨은 부호화하고 (P-M) 비트 레벨은 부호화하지 않는 단계를 포함할 수 있다.
상기 결정단계는, 송신단으로부터 상기 전송심볼을 수신하는 단계; 및 상기 전송심볼과 상기 전송심볼에 따라 발생될 수 있는 상기 오류패턴이 저장된 테이블에 기초하여 상기 오류패턴의 범위를 결정하는 단계를 포함 할 수 있다.
상기 송신단은 호스트이고, 상기 멀티 비트 레벨 데이터의 부호화 방법의 각 단계는 데이터 저장 장치에서 수행 될 수 있다.
상기 데이터 저장 장치는, 적어도 하나의 멀티 레벨 셀들을 포함 할 수 있다.
상기 멀티 비트 레벨 데이터의 부호화 방법의 각 단계는, 통신 시스템에서 수행 될 수 있다.
상기 멀티 비트 레벨 데이터의 부호화 방법은, 각각이 상기 P비트 레벨을 저장하는 반도체 메모리 장치의 멀티레벨 셀들 각각에 데이터를 라이트 할 때 수행되고, 상기 (P-M) 비트 레벨은 부호화하지 않는 단계는, 상기 멀티레벨 셀들 각각의 상기 P비트 레벨 중에서 상기 M 비트 레벨은 부호화하고 상기 (P-M) 비트 레벨은 부호화하지 않는 단계일 수 있다.
상기 M 은 [log2L](여기서, 상기 L은 상기 오류패턴의 범위의 최대값이고, 상기 [log2L]은 log2L 의 계산결과보다 크거나 같은 가장 작은 정수)과 상응 할 수 있다.
상기 멀티 비트 레벨 데이터의 부호화 방법은, 상기 결정검출단계 전에, 다수의 전송심볼들 각각을 대응되는 P비트 레벨로 매핑시킨 매핑 테이블을 생성하는 단계를 더 포함하고, 상기 매핑 테이블은, 복호화된 상기 P비트 레벨 각각을 대응되는 전송심볼로 매핑할 때 사용 될 수 있다.
상기 매핑 테이블을 생성하는 단계는, 상기 다수의 전송심볼들 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터를 서로 다르게 설정하는 단계를 포함하며, 상기 전송후보 심볼 집합은, 상기 오류 패턴을 고려했을 때 수신된 심볼에 대한 가능한 모든 전송 심볼들의 집합 일 수 있다.
상기 특정 이진벡터는, 상기 다수의 멀티 비트 레벨 중에서 상기 부호화된 상기 M비트 레벨와 상응 할 수 있다.
상기 특정 이진벡터를 서로 다르게 설정하는 단계는, 상기 동일한 전송후보 심볼 집합 내의 특정 이진벡터들 각각을 그레이 코딩(gray coding)화 하여 상기 특정 이진벡터를 서로 다르게 설정하는 단계를 포함 할 수 있다.
상기 매핑 테이블을 생성하는 단계는, 다수의 전송심볼들 중에서 서로 인접한 전송심볼 간의 이진벡터들의 해밍거리를 최소화시키는 단계를 더 포함 할 수 있다.
상기 기술적 과제를 달성하기 위한 멀티 비트 레벨 데이터의 복호화 방법은 다수의 심볼들 중에서 수신심볼에 대응되는 적어도 하나 이상의 전송후보심볼을 검출하는 단계; 상기 수신심볼에 상응하는 다수의 멀티비트 레벨들 중에서 부호화된 M(M은 자연수) 비트레벨을 복호화하는 단계; 및 상기 적어도 하나의 전송 후보 심볼들 중에서 부호화된 M 비트 레벨의 복호화된 정보를 통해 원래의 전송 심볼을 선택하는 단계를 포함할 수 있다.
상기 검출단계는, 송신단으로부터 상기 수신심볼을 수신하는 단계; 및 다수의 수신심볼들 각각에 대한 적어도 하나의 전송후보심볼이 저장된 테이블에 기초하여 상기 수신심볼에 대응되는 상기 적어도 하나의 전송후보심볼을 검출하는 단계를 포함 할 수 있다.
상기 송신단은 호스트이고, 상기 멀티 비트 레벨 데이터의 부호화 방법의 각 단계는 데이터 저장 장치에서 수행 될 수 있다.
상기 데이터 저장 장치는, 반도체 메모리 장치 일 수 있다.
상기 멀티 비트 레벨 데이터의 복호화 방법의 각 단계는 통신 시스템에서 수행 될 수 있다.
상기 기술적 과제를 달성하기 위한 각각이 P(P는 2이상의 자연수) 비트레벨을 갖는 G(G은 자연수)개의 셀들 각각에 대하여 멀티 비트레벨 데이터를 라이트 하는 방법은, 상기 G개의 셀들 각각에 라이트할 패러티 비트들 및 정보비트들을 수신하는 단계; 및 H(H는 G보다 작은 자연수)개의 셀들 각각의 상기 P비트 레벨에는 상기 패러티 비트들 중에서 대응되는 패러티 비트를 저장하고, (G-H)개의 셀들 각각의 상기 P비트 레벨 각각에는 상기 정보비트들 중에서 대응되는 정보 비트를 저장하는 단계를 포함할 수 있다.
상기 정보 비트를 저장하는 단계는, 상기 (G-H)개의 셀들 각각의 상기 P 비트레벨들 중에서 M(M은 상기 P보다 작은 자연수) 비트레벨은 부호화하고 (P-M) 비트레벨은 부호화하지 않는 단계를 더 포함 할 수 있다.
상기 부호화된 M비트레벨을 복호화하기 위한 패러티 비트는, 상기 H개의 셀들 중에서 대응되는 셀들 각각의 상기 P비트레벨에 저장 될 수 있다.
본 발명에 따른 멀티 비트 레벨 데이터의 부호화 및 복호화 방법은 다수의 비트 레벨 중에서 일부의 비트 레벨에 대해서만 부호화하므로 셀당 평균 정보 비트수를 증가시킬 수 있다.
또한, 본 발명에 따른 멀티 비트 레벨 데이터 의 부호화 및 복호화 방법은 그레이 코드가 적용된 비트-심볼 매핑 테이블을 사용하거나 서로 인접한 심볼 간의 이진 벡터들의 해밍 거리를 최소화 시키는 비트-심볼 매핑 테이블을 사용하여 복호 실패 시에도 비트 오류를 줄일 수 있는 효과가 있다.
한편, 본 발명에 따른 멀티 비트 레벨 데이터의 라이트 방법은 부호화된 비트레벨과 부호화되지 않은 비트레벨을 고려하여 정보 비트와 패리티 비트를 저장하여 셀을 효과적으로 배분할 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시 예에 따른 반도체 메모리 장치를 나타내고, 도 2는 도 1의 반도체 메모리 장치 포함하는 본 발명의 실시 예에 따른 전자 시스템이고, 도 3은 도 2의 전자 시스템을 구비하는 전자기기들을 나타낸다.
도 4는 도 1의 반도체 메모리 장치에서 발생되는 오류패턴을 설명하기 위한 표이고, 도 5는 도 1의 메모리부를 구성하는 다수의 셀들을 나타내고, 도 6과 도 7 각각은 도 5의 다수의 셀들에 정보 데이터와 패리티 데이터를 저장하는 방법의 실시 예에 대한 도면이다.
도 8은 도 1의 컨트롤러에서 수신되는 수신심볼에 대한 전송 후보심볼들을 나타내고, 도 9과 도 10 각각은 도 1의 컨트롤러에 저장되는 비트-심볼 매핑 테이블의 실시예를 나타낸다. 도 1 내지 도 10을 참조하면, 반도체 메모리 장치(10)는 컨트롤러(13)와 메모리부(20)를 포함할 수 있다.
반도체 메모리 장치(10)는 메모리 카드일 수 있으며, 컴팩트 플래시, 메모리 스틱, 메모리 스틱 듀오, 멀티미디어 카드(MMC), 축소형 MMC, 시큐어 디지털 카드(SD), 미니SD 카드, 마이크로SD 카드(트랜스플래시), 스마트미디어 카드, 및 XD-픽쳐 카드 등이 될 수 있다.
반도체 메모리 장치(10)는 메모리 슬롯(도 2의 48)에 전기적으로 접속되어 호스트(5)에 구현된 카드 인터페이스(46)를 통하여 전자 회로부(44)로부터 출력된 데이터(예컨대, 영상 데이터 또는 오디오 데이터)를 저장하거나, 저장된 데이터를 상기 전자 회로부(44)로 전송할 수 있다.
예컨대, 호스트(5)가 비디오 카메라(도 5의 (a))인 경우, 상기 전자 회로부(44)는 CIS(cmos image sensor), 이미지 프로세서, 및 디지털 신호처리부를 구비할 수 있으며, 카드 인터 페이스(48)를 통하여 전자 회로부(44)에서 생성된 데이터(예컨대, 영상 데이터 또는 오디오 데이터)를 상기 반도체 메모리 장치(10)로 전송할 수 있다.
또한, 상기 반도체 메모리 장치(10)는 비디오 카메라(도 5의 (a)), 텔레비젼(도 5의 (b)), MP3(도 5의 (c)), 게임기(도 5의 (d)), 전자 악기(도 5의 (e)), 휴대용 단말기(도 5의 (f)), PC (personal computer, 도 5의 (g)), PDA(personal digital assistant, 도 5의 (h)), 보이스 레코더(voice recorder, 도 5의 (i)), 또는 PC 카드(도 5의 (j)) 등에 구현될 수 있다.
컨트롤러(13)는 호스트(5)로부터 수신된 심볼(또는, 데이터)과 상응하는 멀티비트 레벨 데이터 중에서 적어도 어느 하나를 부호화하고 부호화된 멀티비트 레 벨 데이터를 메모리부(20)에 저장(또는, 쓰기)할 수 있다.
또한, 컨트롤러(13)는 메모리부(20)에 저장된 부호화된 멀티비트 레벨 데이터를 복호화하고 복호화된 멀티비트 레벨 데이터와 상응하는 심볼을 호스트(5)로 전송할 수 있다.
컨트롤러(13)는 호스트 인터페이스(12)와 ECC(Error Correction Code) 블록(14)을 포함할 수 있다.
호스트 인터 페이스(12)는 호스트(5)로부터 출력된 명령 및 데이터를 ECC 블록(14)으로 전송하고, 메모리부(20)에 저장된 데이터를 ECC 블록(14)을 통하여 호스트(5)로 전송할 수 있다.
ECC 블록(14)은 호스트(5)로부터 수신된 심볼(또는, 데이터)과 상응하는 멀티비트 레벨 데이터 중에서 적어도 어느 하나의 비트 레벨을 부호화하고 부호화된 멀티비트 레벨 데이터를 메모리부(20)에 저장(또는, 쓰기)할 수 있고, 메모리부(20)에 저장된 부호화된 멀티비트 레벨 데이터를 복호화하고 복호화된 멀티비트 레벨 데이터와 상응하는 심볼을 호스트(5)로 전송할 수 있다.
ECC 블록(14)은 인코더(15), CPU(16), 메모리(17), 및 디코더(18)을 포함할 수 있다. 인코더(15)는 호스트(5)로부터 수신된 심볼(또는, 데이터)과 상응하는 다수의 멀티비트 레벨들 중에서 적어도 어느 하나의 비트 레벨을 부호화하고 부호화된 비트 레벨 데이터를 메모리부(20)에 저장(또는, 쓰기)할 수 있다.
멀티비트 레벨 데이터는 메모리부(20, 예컨대, 멀티비트 플래시 메모리)의 셀 당 저장되는 비트 레벨들(또는, 페이지들) 로서, Q(Q는 자연수, 예컨대, 16)진 멀티비트 플래시 메모리의 경우 상기 멀티비트 레벨 데이터의 멀티비트 레벨의 개수는 B(B는 자연수, 예컨대, 4)가 된다.
인코더(15)는 멀티비트 레벨 데이터를 부호화하는 경우 호스트(5)로부터 수신된 전송심볼과 상기 전송심볼에 따라 발생될 수 있는 상기 오류패턴이 저장된 테이블(도 4)에 기초하여 상기 오류패턴의 범위(또는, 개수)를 검출하고 상기 오류패턴의 범위(또는, 개수)에 기초하여 상기 전송심볼과 상응하는 다수의 멀티비트 레벨들 중에서 적어도 하나의 비트 레벨을 데이터를 부호화할 수 있다.
인코더(15)는 ECC (Error Correction Code) 알고리즘을 이용하여 적어도 하나의 비트 레벨을 부호화할 수 있다.
일반적으로 메모리부(20, 예컨대, 멀티비트 플래시 메모리)의 채널은 몇몇 인접 심볼들로 잘못 읽혀져서 발생하는 오류패턴을 갖는 특성을 보일 수 있다.
예컨대, 메모리부(20)에서 전송한 전송심벌이 "3"(도 4)인 경우, 컨트롤러(13)는 "3"을 수신심볼로서 수신할 수 있지만, "1", "2", 및 "4" 중에서 어느 하나를 수신심볼로서 수신할 수도 있다.
이 경우 오류패턴(수신심볼의 값에서 전송심볼의 값을 뺀 값)은 "-2", "-1", "0", 및 "1"이 된다.
그런데, 일반적인 메모리부(20)의 경우 상기 메모리부(20)에서 발생되는 전송심볼은 제한된 범위(또는, 개수)의 오류패턴을 갖는다.
예컨대, 도 4는 메모리부(20)에서 발생된 전송심벌에 따른 수신심벌의 오류패턴을 나타내는 테이블로서, 전송심벌들(0~15) 각각이 Q(Q는 자연수, 예컨대, 16) 진 심벌인 경우 "0"은 오류가 발생되지 않고 "1", "2", 및 "5"를 제외한 나머지 심벌의 오류패턴의 범위(또는, 개수)는 4개(즉, "-2", "-1", "0", 및 "1")로 제한된다.
즉, 인코더(15)는 도 4의 테이블을 참조하여 오류패턴의 범위(또는, 개수)를 검출하고 상기 오류패턴의 범위(또는, 개수)에 기초하여 상기 전송심볼과 상응하는 다수의 멀티비트 레벨들 중에서 적어도 하나의 비트레벨을 부호화할 수 있다.
예컨대, 인코더(15)는 도 5와 같이 하나의 부호어를 구성하는 n개의 셀들 각각의 b개의 멀티비트 레벨 데이터 중에서 m개의 비트 레벨만을 부호화하고, b-m개의 비트 레벨은 부호화하지 않을 수 있다.
인코더(15)는 오류패턴의 범위(또는, 개수)가 L(L은 자연수)인 경우, 다수의 멀티비트 레벨들 중에서 m(단, 상기 m은 [log2L]이고 상기 [log2L]은 log2L 의 계산결과보다 크거나 같은 가장 작은 정수)개의 비트 레벨만을 부호화할 수 있다.
예컨대, 인코더(15)는 오류패턴의 범위(또는, 개수)가 4개(즉, "-2", "-1", "0", 및 "1")인 경우 다수의 멀티비트 레벨들(예컨대, 도 6의 1st page 내지 4th page) 중에서 2개의 비트 레벨만(예컨대, 1st page 및 2nd page)을 부호화할 수 있다.
이때, 셀 당 평균 정보비트 수(Kavg)는 다음의 수학식 1과 상응할 수 있다.
Figure 112008031488770-pat00001
(여기서, 상기 Ki는 i(i는 자연수)번째 비트 레벨 데이터에서의 정보비트 수이다.)
또한, 셀당 부호율(R)은 다음의 수학식 2와 상응할 수 있다.
R = Kavg / b
인코더(15)는 전송심벌들(0~15) 각각이 Q(Q는 자연수, 예컨대, 16)진 심벌인 경우 도 6과 같이 4개의 비트 레벨들(1st page 내지 4th page) 중에서 2개의 비트 레벨(1st page 및 2nd page) 만을 부호화할 수 있다. 이때, 셀당 부호율(R')과 셀 당 평균 정보비트 수(Kavg')는 다음의 수학식 3 및 4와 상응할 수 있다.
R' = (2n+2k)/4n = {4k+2(n-k)}/4 = k/n + (n-k)/2n
Kavg' = 4R'
즉, 본 발명의 실시 예에 따른 컨트롤러(13)의 부호화 방법은 다수의 비트 레벨 중에서 일부의 비트 레벨에 대해서만 부호화하므로 셀당 평균 정보 비트수를 증가시킬 수 있다.
한편, 부호화된 비트레벨과 부호화되지 않은 비트레벨을 고려하여 정보 비트와 패리티 비트를 저장하는 셀을 효과적으로 배분하는 방법을 제안할 수 있다. 필 요에 따라 부호화되지 않은 부분의 비트레벨의 정보 비트수와 부호화된 부분의 비트레벨의 정보 비트수를 각 비트레벨 별로 같게 하거나 다르게 하는 방법을 사용할 수 있다.
이 경우, 비트레벨마다 정보 비트수, 패리티 비트수의 양을 조절하여 낭비되는 셀을 최소화할 수 있다. 또한 부호화되지 않은 부분의 비트레벨의 정보 비트수와 부호화된 부분의 비트레벨의 정보 비트수를 동일하게 조절할 수 있다.
예컨대, 인코더(15)는 도 7과 같이 각각이 제1 내지 제4 비트 레벨(1st page 내지 4th page)을 갖는 다수의 셀(예컨대, G(G는 자연수)개의 셀) 중에서 G-H(H는G 보다 작은 자연수) 개의 셀에는 정보비트만 저장하고, H개의 셀에는 패러티 비트(parity bits of 1st & 2nd page)만을 저장할 수 있다.
H개의 셀에 저장된 패러티 비트(parity bits of 1st and 2nd)는 제1 비트 레벨 (1sth page'과 제2 비트 레벨 데이터(2nd page' 각각의 부호화된 정보비트(coded info. bits)를 복호하는데 사용될 수 있다.
도 7의 셀들은 도 6의 셀들과 비교하여 각 페이지(비트 레벨) 별로 동일한 크기의 정보비트를 가진다. 즉, 도 6의 a개의 셀들 각각의 제1 및 제2 비트 레벨 (1st page, 2nd page)은 패러티 비트를 포함하므로, 정보를 저장하는 셀의 개수가 비트레벨별(즉, 페이지 별)로 다르기 때문에 제어하는 것이 어려울 수 있다.
그러나, 도 7의 셀들은 메모리부(20)의 G개의 셀이 특정 비트 레벨 데이터의 복호화에 필요한 패러티 비트(parity bits of 1st and 2nd)만을 포함함으로써 정보를 저장하는 셀의 개수가 비트레벨별(즉, 페이지 별)로 동일하기 때문에 제어하는 것이 용이해질 수 있다.
CPU(16)는 인코더(15), 메모리(17), 및 디코더(18)의 동작을 제어할 수 있고, 다수의 전송심볼들(0 내지 16) 각각을 대응되는 다수의 멀티 비트 레벨로 매핑시킨 매핑 테이블(MT1)을 생성하고 생성된 매핑 테이블(MT1)을 메모리(17)에 저장할 수 있다.
매핑 테이블(MT1)은 도 9와 같이 복호화된 다수의 멀티 비트 레벨 각각을 대응되는 전송심볼로 매핑시 사용되는 테이블이다.
매핑 테이블(MT1)에서 수신된 수신 심볼이 Si일 때, 상기 수신 심볼에 대한전송 후보 심볼 집합이 T(Si)라고 하자. 이 경우 전송 후보 심볼 집합 T(Si)는 심볼 Si로 수신될 수 있는 가능한 모든 전송 심볼들의 집합이다. 전송 후보 심볼 매핑 테이블(MT1)에서 수신된 수신심볼이 Si이고 상기 수신심볼(예컨대, 도 6의 Si)에 대한 전송 후보 심볼집합이 T(Si)(예컨대, 도 8)인 경우, 비트-심볼 간의 매핑을 통해 심볼(Si)은 이진벡터(xi=(xi ,1, xi,2, ..., xi ,b) ∈ {0,1}b 로 나타낼 수 있다.
본 발명에서 매핑 테이블(MT1)의 이진벡터(xi) 중에서 부호화된 이진벡터는 xi (1)=(xi,1, ..., xi ,m) ∈ {0,1}m이고, 부호화되지 않은 이진벡터는 xi (2)=(xi ,m+1, ..., xi ,b) ∈ {0,1}b-m으로 나타낸다.
CPU(15)는 다수의 전송심볼들(0 내지 16) 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터를 서로 다르게 설정할 수 있다.
보다 상세하게는, CPU(15)는 전송 후보 심볼집합(T(Si))이 T(s) = {Si1, Si2, , ... , SiM}인 경우, M ≤ L 이라고 하면, 1 ≤ j ≤ k ≤ M을 만족하는 모든 j와 k에 대하여 Sij의 부호화된 이진벡터 xij (1)과 Sik의 부호화된 이진벡터 xik (1)가 서로 다르도록 설정할 수 있다.
예컨대, CPU(15)는 수신심볼(예컨대, 도 8의 "9")에 대한 전송후보 심볼 집합(예컨대, 도 8의 "8", "9", "10", 및 "11")에 대한 특정 이진벡터(x1과 x2)를 각각 "00", "10", "01", 및 "11"로 설정할 수 있다.
또한, CPU(15)는 상기 동일한 전송후보 심볼 집합 내의 특정 이진벡터들 각각을 그레이 코딩(gray coding)화 하여 상기 특정 이진벡터를 서로 다르게 설정할 수 있다.
예컨대, CPU(15)는 도 10의 매핑 테이블(MT3)와 같이 수신심볼(예컨대, 도 6의 "9")에 대한 전송후보 심볼 집합(예컨대, 도 6의 "8", "9", "10", 및 "11")에 대한 특정 이진벡터(x1과 x2)를 각각 그레이 코드화하여 "00", "10", "11", 및 "01"로 설정할 수 있다.
또한, CPU(15)는 다수의 전송심볼들 중에서 서로 인접한 전송심볼 간의 이진벡터들의 해밍거리를 최소화시킬 수 있다.
예컨대, CPU(15)는 도 10의 매핑 테이블(MT3)와 같이 수신심볼(예컨대, 도 8의 "9")에 대한 전송후보 심볼 집합(예컨대, 도 8의 "8", "9", "10", 및 "11")에 대한 특정 이진벡터(x1과 x2)를 각각 그레이 코드화하여 "00", "10", "11", 및 "01"로 설정할 수 있다.
본 발명의 실시 예에 따른 반도체 메모리 장치(10)는 동일한 전송후보 심볼 집합 내의 특정 이진벡터들 각각을 그레이 코딩(gray coding)화시키고, 서로 인접한 전송심볼 간의 이진벡터들의 해밍거리를 최소화시킴으로써 복호 실패시 발생될 수 있는 오류를 줄일 수 있는 효과가 있는데 이에 대한 상세한 설명은 후술하도록 한다.
메모리(17)는 도 4의 오류패턴이 저장된 테이블, 수신심볼에 대한 전송후보심볼들에 대한 테이블(도 8), 및 도 9 또는 도 10의 매핑 테이블(MT1 또는 MT3)를 저장할 수 있다.
디코더(18)는 메모리부(20)에 저장된 부호화된 멀티비트 레벨 데이터를 복호화하고 복호화된 멀티비트 레벨 데이터와 상응하는 심볼을 호스트(5)로 전송할 수 있다.
디코더(18)는 미리 정해진 ECC (Error Correction Code) 알고리즘을 이용하여 복호화를 수행할 수 있다.
디코더(18)는 메모리부(20)로부터 수신되는 수신심볼의 복호화시 우선, 다수의 전송후보심볼들 중에서 수신심볼에 대응되는 적어도 하나의 전송후보심볼을 검 출할 수 있다.
예컨대, 디코더(18)는 메모리(17)에 저장된 도 8의 테이블로부터 메모리부(20)로부터 수신된 수신심볼이 "7"인 경우, 전송후보심볼로서 "6", "7", "8", 및 "9"를 검출할 수 있다.
디코더(18)는 수신심볼에 상응하는 다수의 멀티비트 레벨들 중에서 부호화된 적어도 하나의 비트레벨을 복호화하고 전송후보심볼 중에서 복호화된 적어도 하나의 비트레벨을 포함하는 심볼을 전송심볼로서 검출할 수 있다.
예컨대, 디코더(18)는 인코더(16)가 다수의 멀티비트 레벨들(예컨대, 도 6의 1st page 내지 4th page) 중에서 2개의 비트 레벨만(예컨대, 1st page 및 2nd page)을 부호화한 경우, 상기 2개의 비트 레벨만(즉, 1st page 및 2nd page)을 복호화할 수 있다.
디코더(18)는 도 9의 매핑 테이블(MT1)에 기초하여 전송후보심볼("6", "7", "8", 및 "9") 중에서 복호화된 2개의 비트 레벨(x1과 x2)을 포함하는 심볼을 전송심볼로서 검출할 수 있다.
예컨대, 디코더(18)는 복호화된 2개의 비트 레벨(x1과 x2) 각각이 "0"과 "1"인 경우, 심볼 "6"을 전송심볼로서 검출할 수 있다.
즉, 본 발명의 실시 예에 따른 반도체 메모리 장치(10)의 부호화 및 복호화는 다수의 멀티비트 레벨들(예컨대, 도 6의 1st page 및 4th page) 전체에 대해서 수행되지 않고 일부의 비트 레벨(예컨대, 1st page 및 2nd page)에 대해서만 수행되므로 셀당 평균 정보 비트수를 증가시킬 수 있는 효과가 있다.
특히, CPU(16)가 도 10의 매핑 테이블(MT3)와 같이 구성하는 경우 디코더(18)의 복호 실패시 발생하는 오류를 줄일 수 있다.
메모리부(20)에 저장되어 디코더(18)로 전송된 전송심볼이 "6"이었는데 실제로 디코더(18)가 수신한 수신심볼이 "8" 인 경우를 가정하여 매핑 테이블(MT1 또는 MT3)에 따른 복호화 결과를 비교하면 다음과 같다.
디코더(18)가 도 9의 매핑 테이블(MT1)을 사용하여 비트-심볼 매핑을 하는 경우, 수신심볼의 이진벡터는 "0110"이고, 전송심볼의 이진벡터는 "0001"이다.
이때, 복호화된 2개의 비트 레벨들(x1과 x2) 중에서 "x2"에 오류가 발생되어 x(1) =(x1, x2)= (0, 1)인 경우 최종복호화된 멀티비트 레벨 데이터는 "0110"이 되어 3비트 오류가 된다.
그러나, 디코더(18)가 도 10의 매핑 테이블(MT3)을 사용하여 비트-심볼 매핑을 하는 경우, 수신심볼의 이진벡터는 "1110"이고, 전송심볼의 이진벡터는 "0011"이다.
이때, 복호화된 2개의 비트 레벨들(x1과 x2) 중에서 "x2"에 오류가 발생되어 x(1) =(x1, x2)= (0, 1)인 경우 최종복호화된 멀티비트 레벨 데이터는 "0110"이 되어 2비트 오류가 된다. 즉, 디코더(18)가 도 8의 매핑 테이블(MT3)을 사용하는 경우 복호 실패시 발생하는 오류를 줄일 수 있는 효과가 있다.
메모리부(20)는 ECC 블록(14)에 의해서 부호화된 멀티비트 레벨 데이터를 저장할 수 있으며, 상기 메모리부(20)는 비휘발성 메모리 장치(예컨대, 멀티비트 플 래시 메모리 장치)일 수 있다.
도 11은 본 발명의 실시 예에 따른 부호 및 복호화 시스템을 나타낸다.도 1과 도 11을 참조하면, 통신 시스템 또는 반도체 메모리 장치 내에서 구현될 수 있는 부호 및 복호화 시스템(100)은 외부 인코더(110), 내부 인코더(120), 비트-심볼 매핑부(130), 심볼-비트 매핑부(150), 내부 디코더(160), 및 외부 디코더(180)을 포함할 수 있다.
외부 인코더(110)는 ECC 알고리즘을 사용하여 외부로부터 수신되는 데이터를 부호화할 수 있다.
내부 인코더(120)는 외부 인코더(110)에서 출력된 부호화된 데이터에 기초하여 상기 부호화된 데이터를 다수의 멀티비트 레벨(또는, 데이터 단위)로 분류하여 적어도 하나의 비트 레벨을 부호화할 수 있다.
예컨대, 내부 인코더(120)는 제1 비트 레벨 인코더(122)를 이용하여 제1 비트 레벨 을 제1 ECC 알고리즘을 사용하여 부호화하고 부호화된 제1 멀티비트 레벨을 출력할 수 있다.
또한, 내부 인코더(120)는 제2 비트 레벨 인코더(124)를 이용하여 제2 비트 레벨을 제2 ECC 알고리즘을 사용하여 부호화하고 부호화된 제2비트 레벨을 출력할 수 있다.
또한, 내부 인코더(120)는 제3 비트 레벨 및 제4 비트 레벨 각각은 부호화하지 않고 출력할 수 있다.
비트-심볼 매핑부(130)는 내부 인코더(120)로부터 부호화된 제1 비트 레벨, 부호화된 제2비트 레벨, 제3 비트 레벨, 및 제4 비트 레벨을 수신하고 수신된 멀티비트 레벨에 기초하여 각 셀 단위(또는, 심볼 단위)로 비트-심볼 매핑할 수 있다.
비트-심볼 매핑부(130)는 매핑 결과를 채널(140, 예컨대, 반도체 메모리 장치(예컨대, 멀티비트 플래시 메모리) 또는 통신 채널)에 전송할 수 있다.
심볼-비트 매핑부(150)는 채널(140)을 통하여 수신되는 심볼을 수신하고 수신된 심볼을 심볼-비트 매핑하여 제1 비트레벨에 해당하는 데이터, 제2 비트레벨에 해당하는 데이터, 제3 비트레벨에 해당하는 데이터, 및 제4 비트레벨에 해당하는 데이터를 출력할 수 있다.
내부 디코더(160)는 제1 비트레벨에 해당하는 데이터, 제2 비트레벨에 해당하는 데이터를 각각 제1 ECC 알고리즘과 제2 ECC 알고리즘을 사용하여 복호화할 수 있다.
예컨대, 내부 디코더(160)는 제1 비트 레벨 디코더(162)를 이용하여 제1 비트레벨에 해당하는 데이터를 제1 ECC 알고리즘을 사용하여 복호화하고 복호화된 데이터를 출력할 수 있다.
또한, 내부 디코더(160)는 제2 비트 레벨 디코더(154)를 이용하여 제2 비트레벨에 해당하는 데이터를 제2 ECC 알고리즘을 사용하여 복호화하고 복호화된 데이터를 출력하고, 제3 비트레벨에 해당하는 데이터, 및 제4 비트레벨에 해당하는 데이터 각각은 부호화하지 않고 출력할 수 있다.
또한, 내부 디코더(160)는 셀 단위 최종 복호기(166)을 이용하여 제1 ECC 알 고리즘 및 제2 ECC 알고리즘을 사용하여 복호화된 데이터, 제3 비트레벨에 해당하는 데이터, 및 제4 비트레벨에 해당하는 데이터에 기초하여 셀(또는, 심볼) 단위로 비트-심볼 매핑하여 제1 비트 레벨, 제2 비트 레벨, 제3 비트 레벨, 및 제4 비트 레벨과 상응하는 복호화된 비트 레벨 데이터를 출력할 수 있다.
예컨대, 셀 단위 최종 복호기(166)는 도 9의 매핑 테이블(MT1) 또는 도 10의 매핑 테이블(MT3)를 이용하여 수신된 멀티비트 레벨 데이터에 기초하여 각 셀 단위(또는, 채널 단위)로 비트-심볼 매핑하고, 매핑된 심볼과 상응하는 비트 레벨 데이터를 출력할 수 있다.
외부 디코더(180)는 셀 단위 최종 복호기(166)에서 출력된 비트 레벨 데이터과 상응하는 데이터를 수신하고 수신된 데이터를 복호화하고 복호화된 데이터를 외부로 출력할 수 있다.
제1 ECC 알고리즘과 제2 ECC 알고리즘은 서로 다른 ECC 알고리즘일 수 있다.
도 12는 본 발명의 실시 예에 따른 멀티 비트 레벨의 부호화 방법을 나타내는 흐름도이다. 도 1과 도 12를 참조하면, 컨트롤러(13)는 송신단(예컨대, 호스트, 5)으로부터 전송심볼을 수신한다(S10).
컨트롤러(13)는 전송심볼과 상기 전송심볼에 따라 발생될 수 있는 오류패턴이 저장된 테이블(예컨대, 도 4)에 기초하여 상기 오류패턴의 범위를 검출한다(S12).
컨트롤러(13)는 오류패턴의 범위에 기초하여 전송심볼과 상응하는 다수의 멀티비트 레벨 중에서 적어도 하나의 비트 레벨을 부호화한다(S14).
도 13은 본 발명의 실시 예에 따른 멀티 비트 레벨의 복호화 방법을 나타내는 흐름도이다. 도 1과 도 13을 참조하면, 컨트롤러(13)는 다수의 전송후보심볼들 중에서 수신심볼에 대응되는 적어도 하나의 전송후보심볼을 검출한다(S20).
예컨대, 컨트롤러(13)는 다수의 수신심볼들 각각에 대한 적어도 하나의 전송후보심볼이 저장된 테이블(도 8)에 기초하여 상기 수신심볼에 대응되는 상기 적어도 하나의 전송후보심볼을 검출한다.
컨트롤러(13)는 수신심볼에 상응하는 다수의 멀티비트 레벨 중에서 부호화된 적어도 하나의 비트 레벨을 복호화한다(S22).
컨트롤러(13)는 적어도 하나의 전송후보 각각의 멀티비트 레벨 중에서 상기 복호화된 적어도 하나의 비트 레벨을 포함하는 심볼을 전송심볼로서 검출한다(S24).
예컨대, 컨트롤러(13)는 도 9의 매핑 테이블(MT1) 또는 도 10의 매핑 테이블(MT3)에 기초하여 적어도 하나의 전송후보 각각의 멀티비트 레벨 중에서 상기 복호화된 적어도 하나의 비트 레벨을 포함하는 심볼을 전송심볼로서 검출한다.
도 14는 본 발명의 실시 예에 따른 멀티 비트레벨 데이터를 라이트 하는 방법을 나타내는 흐름도이다. 도 1과 도 14를 참조하면, ECC 블록(14)은 각각이 P(P는 2이상의 자연수) 비트레벨을 갖는 G(G은 자연수)개의 셀들 각각에 대하여 멀티 비트레벨 데이터를 라이트 하기 위해서 상기 G개의 셀들 각각에 라이트할 패러티 비트들 및 정보비트들을 수신한다(S30).
ECC 블록(14)은 H(H는 G보다 작은 자연수)개의 셀들 각각의 상기 P비트 레벨 에는 상기 패러티 비트들 중에서 대응되는 패러티 비트를 저장하고, (G-H)개의 셀들 각각의 상기 P비트 레벨 각각에는 상기 정보비트들 중에서 대응되는 정보 비트를 저장한다(S32).
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 반도체 메모리 장치를 나타낸다.
도 2는 도 1의 반도체 메모리 장치 포함하는 본 발명의 실시 예에 따른 전자 시스템이다.
도 3은 도 2의 전자 시스템을 구비하는 전자기기들을 나타낸다.
도 4는 도 1의 반도체 메모리 장치에서 발생되는 오류패턴을 설명하기 위한 표이다.
도 5는 도 1의 메모리부를 구성하는 다수의 셀들을 나타낸다.
도 6은 도 5의 다수의 셀들에 정보 데이터와 패리티 데이터를 저장하는 방법의 실시 예에 대한 도면이다.
도 7은 도 5의 다수의 셀들에 정보 데이터와 패리티 데이터를 저장하는 방법의 실시 예에 대한 도면이다.
도 8은 도 1의 컨트롤러에서 수신되는 수신심볼에 대한 전송후보심볼들을 나타낸다.
도 9는 도 1의 컨트롤러에 저장되는 비트-심볼 매핑 테이블의 실시 예를 나타낸다.
도 10은 도 1의 컨트롤러에 저장되는 비트-심볼 매핑 테이블의 실시 예를 나타낸다.
도 11은 본 발명의 실시 예에 따른 부호 및 복호화 시스템을 나타낸다.
도 12는 본 발명의 실시 예에 따른 멀티 비트 레벨 데이터의 부호화 방법을 나타내는 흐름도이다.
도 13은 본 발명의 실시 예에 따른 멀티 비트 레벨 데이터의 복호화 방법을 나타내는 흐름도이다.
도 14는 본 발명의 실시 예에 따른 멀티 비트레벨 데이터를 라이트 하는 방법을 나타내는 흐름도이다.

Claims (20)

  1. 다수의 전송심볼들 각각을 대응되는 P(P는 2이상의 자연수)비트 레벨로 매핑시킨 매핑 테이블을 생성하는 단계;
    전송심볼에 따라 발생될 수 있는 오류패턴의 범위를 결정하는 결정단계; 및
    상기 오류패턴의 범위에 기초하여 상기 전송심볼과 상응하는 P비트 레벨 중에서 M(M은 상기 P보다 작은 자연수) 비트 레벨은 부호화하고 (P-M)비트 레벨은 부호화하지 않는 단계를 포함하며,
    상기 매핑 테이블은,
    복호화된 상기 P비트 레벨 각각을 대응되는 전송심볼로 매핑할 때 사용되고,
    상기 매핑 테이블을 생성하는 단계는,
    상기 다수의 전송심볼들 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터를 서로 다르게 설정하는 단계를 포함하며,
    상기 전송후보 심볼 집합은,
    상기 오류 패턴을 고려했을 때, 수신된 심볼에 대한 가능한 모든 전송 심볼들의 집합인 멀티 비트 레벨 데이터의 부호화 방법.
  2. 제1항에 있어서, 상기 결정단계는,
    송신단으로부터 상기 전송심볼을 수신하는 단계; 및
    상기 전송심볼과 상기 전송심볼에 따라 발생될 수 있는 상기 오류패턴이 저장된 테이블에 기초하여 상기 오류패턴의 범위를 결정하는 단계를 포함하는 멀티 비트 레벨 데이터의 부호화 방법.
  3. 제1항에 있어서, 상기 멀티 비트 레벨 데이터의 부호화 방법은,
    각각이 상기 P비트 레벨을 저장하는 반도체 메모리 장치의 멀티레벨 셀들 각각에 데이터를 라이트 할 때 수행되고,
    상기 (P-M) 비트 레벨은 부호화하지 않는 단계는,
    상기 멀티레벨 셀들 각각의 상기 P비트 레벨 중에서 상기 M 비트 레벨은 부호화하고 상기 (P-M)비트 레벨은 부호화하지 않는 단계인 멀티 비트 레벨 데이터의 부호화 방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서, 상기 특정 이진벡터는,
    상기 다수의 멀티 비트 레벨 중에서 상기 부호화된 상기 M비트 레벨과 상응하는 멀티 비트 레벨 데이터의 부호화 방법.
  7. 제1항에 있어서, 상기 특정 이진벡터를 서로 다르게 설정하는 단계는,
    상기 동일한 전송후보 심볼 집합 내의 특정 이진벡터들 각각을 그레이 코딩(gray coding)화 하여 상기 특정 이진벡터를 서로 다르게 설정하는 단계를 포함하는 멀티 비트 레벨 데이터의 부호화 방법.
  8. 제1항에 있어서, 상기 매핑 테이블을 생성하는 단계는,
    다수의 전송심볼들 중에서 서로 인접한 전송심볼 간의 이진벡터들의 해밍거리를 최소화시키는 단계를 더 포함하는 멀티 비트 레벨 데이터의 부호화 방법.
  9. 다수의 심볼들 중에서 수신심볼에 대응되는 적어도 하나 이상의 전송후보심볼을 검출하는 단계;
    상기 수신심볼에 상응하는 다수의 멀티비트 레벨들 중에서 부호화된 M(M은 자연수) 비트레벨을 복호화하는 단계; 및
    상기 적어도 하나의 전송 후보 심볼들 중에서 부호화된 M 비트 레벨의 복호화된 정보를 통해 매핑 테이블에 기초하여 원래의 전송 심볼을 선택하는 단계를 포함하며,
    상기 매핑 테이블은 상기 다수의 전송심볼들 각각을 대응되는 P(P는 2이상의 자연수)비트 레벨로 매핑시킨 테이블이고,
    상기 매핑 테이블 내에서 상기 다수의 전송심볼들 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터는 서로 다르게 설정되며,
    상기 전송후보 심볼 집합은,
    상기 전송심볼에 따라 발생될 수 있는 오류 패턴을 고려했을 때, 수신된 심볼에 대한 가능한 모든 전송 심볼들의 집합인 멀티 비트 레벨 데이터의 복호화 방법.
  10. 각각이 P(P는 2이상의 자연수) 비트레벨을 갖는 G(G은 자연수)개의 셀들 각각에 대하여 멀티 비트레벨 데이터를 라이트 하는 방법에 있어서,
    상기 G개의 셀들 각각에 라이트할 패러티 비트들 및 정보비트들을 수신하는 단계; 및
    H(H는 G보다 작은 자연수)개의 셀들 각각의 상기 P비트 레벨에는 상기 패러티 비트들 중에서 대응되는 패러티 비트를 저장하고, (G-H)개의 셀들 각각의 상기 P비트 레벨 각각에는 상기 정보비트들 중에서 대응되는 정보 비트를 저장하는 단계를 포함하며,
    상기 멀티 비트레벨 데이터는 다수의 전송심볼들 각각을 대응되는 P비트 레벨로 매핑시킨 매핑 테이블에 기초하여 복호화되고,
    상기 매핑 테이블 내에서 상기 다수의 전송심볼들 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터는 서로 다르게 설정되며,
    상기 전송후보 심볼 집합은,
    상기 전송심볼에 따라 발생될 수 있는 오류 패턴을 고려했을 때, 수신된 심볼에 대한 가능한 모든 전송 심볼들의 집합인 멀티 비트레벨 데이터의 라이트 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020080040877A 2008-04-30 2008-04-30 멀티 비트 레벨 데이터의 부호화 및 복호화 방법 KR101466695B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080040877A KR101466695B1 (ko) 2008-04-30 2008-04-30 멀티 비트 레벨 데이터의 부호화 및 복호화 방법
US12/429,718 US8656258B2 (en) 2008-04-30 2009-04-24 Method of encoding and decoding multi-bit level data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080040877A KR101466695B1 (ko) 2008-04-30 2008-04-30 멀티 비트 레벨 데이터의 부호화 및 복호화 방법

Publications (2)

Publication Number Publication Date
KR20090114972A KR20090114972A (ko) 2009-11-04
KR101466695B1 true KR101466695B1 (ko) 2014-12-01

Family

ID=41257936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080040877A KR101466695B1 (ko) 2008-04-30 2008-04-30 멀티 비트 레벨 데이터의 부호화 및 복호화 방법

Country Status (2)

Country Link
US (1) US8656258B2 (ko)
KR (1) KR101466695B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839076B2 (en) * 2011-03-31 2014-09-16 International Business Machines Corporation Encoding a data word for writing the encoded data word in a multi-level solid state memory
JP5619280B2 (ja) * 2011-05-31 2014-11-05 三菱電機株式会社 誤り訂正符号化装置、誤り訂正復号装置、およびその方法
KR101919934B1 (ko) * 2012-04-19 2018-11-20 삼성전자주식회사 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법 및 극 부호화된 부호어를 불휘발성 메모리 장치의 멀티 비트 데이터에 매핑하는 매핑 패턴을 선택하는 매핑 패턴 선택 방법
KR102061653B1 (ko) * 2013-04-15 2020-02-11 삼성전자주식회사 무선 통신 시스템에서 비트 심볼 매핑 방법 및 장치
US9613664B2 (en) * 2015-01-20 2017-04-04 Samsung Electronics Co., Ltd. Method of operating memory device including multi-level memory cells
US9690656B2 (en) 2015-02-27 2017-06-27 Microsoft Technology Licensing, Llc Data encoding on single-level and variable multi-level cell storage
US9786386B2 (en) 2015-02-27 2017-10-10 Microsoft Technology Licensing, Llc Dynamic approximate storage for custom applications
US10409680B1 (en) * 2018-05-24 2019-09-10 Micron Technology, Inc. Progressive length error control code
US10691537B2 (en) * 2018-10-12 2020-06-23 Western Digital Technologies, Inc. Storing deep neural network weights in non-volatile storage systems using vertical error correction codes
KR102282772B1 (ko) 2020-07-16 2021-07-30 (주)티엔팀버 불연성 샌드위치 패널 제조방법 및 상기 불연성 샌드위치 패널을 포함하는 석재 패널
US20240070014A1 (en) * 2022-08-26 2024-02-29 Micron Technology, Inc. Commands for testing error correction in a memory device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849975A (en) * 1987-11-10 1989-07-18 International Business Machines Corporation Error correction method and apparatus
US20010028684A1 (en) * 2000-04-06 2001-10-11 Sae-Young Chung Multilevel coding with unequal error protection and time diversity for bandwidth efficient transmission
WO2006013529A1 (en) * 2004-08-02 2006-02-09 Koninklijke Philips Electronics N.V. Data storage and replay apparatus

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11317095A (ja) 1997-06-06 1999-11-16 Nippon Steel Corp 半導体記憶装置、その使用方法及びその読み出し方法並びに使用方法及び読み出し方法が記憶された記憶媒体
TW405154B (en) 1997-06-06 2000-09-11 Nippon Steel Corp Semiconductor memory device, employ method and reading method of the same, and memory medium for storing the employ method and the reading method
JPH11212876A (ja) 1998-01-21 1999-08-06 Sony Corp 符号化方法およびそれを利用したメモリ装置
WO1999038170A1 (fr) 1998-01-21 1999-07-29 Sony Corporation Procede de codage et dispositif de memoire
JP3308915B2 (ja) 1998-11-11 2002-07-29 エヌイーシーマイクロシステム株式会社 不良救済用メモリセル及びそれを用いた記憶装置
KR100370014B1 (ko) 2000-05-16 2003-01-29 엘지전자 주식회사 공기조화기의 실외기의 소음 저감구조
US6735725B1 (en) * 2000-09-29 2004-05-11 Nortel Networks Limited Method and apparatus for performance management of a multiplexed transmission system
US7006566B2 (en) * 2001-04-10 2006-02-28 Koninklijke Philips Electronics N.V. Two stage equalizer for trellis coded systems
US6734920B2 (en) * 2001-04-23 2004-05-11 Koninklijke Philips Electronics N.V. System and method for reducing error propagation in a decision feedback equalizer of ATSC VSB receiver
US8510633B2 (en) * 2007-04-17 2013-08-13 Nec Corporation Semiconductor storage device and method of operating the same
US8176395B2 (en) * 2007-11-27 2012-05-08 Macronix International Co., Ltd. Memory module and writing and reading method thereof
KR101436506B1 (ko) * 2008-07-23 2014-09-02 삼성전자주식회사 메모리 장치 및 메모리 데이터 프로그래밍 방법
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
US8572457B2 (en) * 2010-05-28 2013-10-29 Seagate Technology Llc Outer code protection for solid state memory devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849975A (en) * 1987-11-10 1989-07-18 International Business Machines Corporation Error correction method and apparatus
US20010028684A1 (en) * 2000-04-06 2001-10-11 Sae-Young Chung Multilevel coding with unequal error protection and time diversity for bandwidth efficient transmission
WO2006013529A1 (en) * 2004-08-02 2006-02-09 Koninklijke Philips Electronics N.V. Data storage and replay apparatus

Also Published As

Publication number Publication date
KR20090114972A (ko) 2009-11-04
US8656258B2 (en) 2014-02-18
US20090276687A1 (en) 2009-11-05

Similar Documents

Publication Publication Date Title
KR101466695B1 (ko) 멀티 비트 레벨 데이터의 부호화 및 복호화 방법
EP1987519B1 (en) Method and system for error correction in flash memory
US9582359B2 (en) Write mapping to mitigate hard errors via soft-decision decoding
US8935589B2 (en) Controller and data access method for flash memories
US8656263B2 (en) Trellis-coded modulation in a multi-level cell flash memory device
US8406051B2 (en) Iterative demodulation and decoding for multi-page memory architecture
EP2823399B1 (en) Apparatus and method for combining an error correcting code with a modulation scheme
US8832525B2 (en) Memory controller with low density parity check code decoding capability and relevant memory controlling method
CN111628780A (zh) 数据编码、解码方法及数据处理系统
WO2018127140A1 (zh) 数据编码及译码的方法和装置
TW201320090A (zh) 基於匹配位元型樣之資料修正
US9502138B2 (en) Data encoding in solid-state storage apparatus
US20060015793A1 (en) Method of combining multilevel memory cells for an error correction scheme
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
WO2010139131A1 (zh) 闪存的控制器以及于闪存存取数据的方法
CN111464267A (zh) 通信数据校验方法、装置、计算机设备和存储介质
CN111049530A (zh) 纠错电路及其操作方法
JP2024507299A (ja) バイナリデータを送信する方法及びデバイス
JP4099844B2 (ja) メモリ装置
US8954832B1 (en) Asymmetric distance coding
US20180091174A1 (en) Progressive polar channel coding in flash memory and communications
JPH11136139A (ja) 復号方法および装置、記憶装置およびこれを用いた情報機器、メモリチップ、記録符号、光通信システム
JPH11212876A (ja) 符号化方法およびそれを利用したメモリ装置
Oh et al. Performance comparison of multi-level coding schemes for flash memory
Oh et al. Performance Comparison of Multi-level Coding Schemes for NAND Flash Memory

Legal Events

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

Payment date: 20181031

Year of fee payment: 5