KR101466695B1 - 멀티 비트 레벨 데이터의 부호화 및 복호화 방법 - Google Patents
멀티 비트 레벨 데이터의 부호화 및 복호화 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/26—Systems using multi-frequency codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
본 발명은 부호화 및 복호화 기술에 관한 것으로, 보다 상세하게는 멀티 비트 레벨 데이터의 부호화 및 복호화 방법에 관한 것이다.
일반적인 반도체 메모리 장치 또는 통신 시스템은 상기 반도체 메모리 장치에 저장되는 심볼(또는, 데이터) 또는 상기 통신 시스템의 송신단으로부터 제공되는 심볼을 보호하기 위해 오류 제어 부호(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과 상응할 수 있다.
또한, 셀당 부호율(R)은 다음의 수학식 2와 상응할 수 있다.
인코더(15)는 전송심벌들(0~15) 각각이 Q(Q는 자연수, 예컨대, 16)진 심벌인 경우 도 6과 같이 4개의 비트 레벨들(1st page 내지 4th page) 중에서 2개의 비트 레벨(1st page 및 2nd page) 만을 부호화할 수 있다. 이때, 셀당 부호율(R')과 셀 당 평균 정보비트 수(Kavg')는 다음의 수학식 3 및 4와 상응할 수 있다.
즉, 본 발명의 실시 예에 따른 컨트롤러(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)
- 다수의 전송심볼들 각각을 대응되는 P(P는 2이상의 자연수)비트 레벨로 매핑시킨 매핑 테이블을 생성하는 단계;전송심볼에 따라 발생될 수 있는 오류패턴의 범위를 결정하는 결정단계; 및상기 오류패턴의 범위에 기초하여 상기 전송심볼과 상응하는 P비트 레벨 중에서 M(M은 상기 P보다 작은 자연수) 비트 레벨은 부호화하고 (P-M)비트 레벨은 부호화하지 않는 단계를 포함하며,상기 매핑 테이블은,복호화된 상기 P비트 레벨 각각을 대응되는 전송심볼로 매핑할 때 사용되고,상기 매핑 테이블을 생성하는 단계는,상기 다수의 전송심볼들 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터를 서로 다르게 설정하는 단계를 포함하며,상기 전송후보 심볼 집합은,상기 오류 패턴을 고려했을 때, 수신된 심볼에 대한 가능한 모든 전송 심볼들의 집합인 멀티 비트 레벨 데이터의 부호화 방법.
- 제1항에 있어서, 상기 결정단계는,송신단으로부터 상기 전송심볼을 수신하는 단계; 및상기 전송심볼과 상기 전송심볼에 따라 발생될 수 있는 상기 오류패턴이 저장된 테이블에 기초하여 상기 오류패턴의 범위를 결정하는 단계를 포함하는 멀티 비트 레벨 데이터의 부호화 방법.
- 제1항에 있어서, 상기 멀티 비트 레벨 데이터의 부호화 방법은,각각이 상기 P비트 레벨을 저장하는 반도체 메모리 장치의 멀티레벨 셀들 각각에 데이터를 라이트 할 때 수행되고,상기 (P-M) 비트 레벨은 부호화하지 않는 단계는,상기 멀티레벨 셀들 각각의 상기 P비트 레벨 중에서 상기 M 비트 레벨은 부호화하고 상기 (P-M)비트 레벨은 부호화하지 않는 단계인 멀티 비트 레벨 데이터의 부호화 방법.
- 삭제
- 삭제
- 제1항에 있어서, 상기 특정 이진벡터는,상기 다수의 멀티 비트 레벨 중에서 상기 부호화된 상기 M비트 레벨과 상응하는 멀티 비트 레벨 데이터의 부호화 방법.
- 제1항에 있어서, 상기 특정 이진벡터를 서로 다르게 설정하는 단계는,상기 동일한 전송후보 심볼 집합 내의 특정 이진벡터들 각각을 그레이 코딩(gray coding)화 하여 상기 특정 이진벡터를 서로 다르게 설정하는 단계를 포함하는 멀티 비트 레벨 데이터의 부호화 방법.
- 제1항에 있어서, 상기 매핑 테이블을 생성하는 단계는,다수의 전송심볼들 중에서 서로 인접한 전송심볼 간의 이진벡터들의 해밍거리를 최소화시키는 단계를 더 포함하는 멀티 비트 레벨 데이터의 부호화 방법.
- 다수의 심볼들 중에서 수신심볼에 대응되는 적어도 하나 이상의 전송후보심볼을 검출하는 단계;상기 수신심볼에 상응하는 다수의 멀티비트 레벨들 중에서 부호화된 M(M은 자연수) 비트레벨을 복호화하는 단계; 및상기 적어도 하나의 전송 후보 심볼들 중에서 부호화된 M 비트 레벨의 복호화된 정보를 통해 매핑 테이블에 기초하여 원래의 전송 심볼을 선택하는 단계를 포함하며,상기 매핑 테이블은 상기 다수의 전송심볼들 각각을 대응되는 P(P는 2이상의 자연수)비트 레벨로 매핑시킨 테이블이고,상기 매핑 테이블 내에서 상기 다수의 전송심볼들 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터는 서로 다르게 설정되며,상기 전송후보 심볼 집합은,상기 전송심볼에 따라 발생될 수 있는 오류 패턴을 고려했을 때, 수신된 심볼에 대한 가능한 모든 전송 심볼들의 집합인 멀티 비트 레벨 데이터의 복호화 방법.
- 각각이 P(P는 2이상의 자연수) 비트레벨을 갖는 G(G은 자연수)개의 셀들 각각에 대하여 멀티 비트레벨 데이터를 라이트 하는 방법에 있어서,상기 G개의 셀들 각각에 라이트할 패러티 비트들 및 정보비트들을 수신하는 단계; 및H(H는 G보다 작은 자연수)개의 셀들 각각의 상기 P비트 레벨에는 상기 패러티 비트들 중에서 대응되는 패러티 비트를 저장하고, (G-H)개의 셀들 각각의 상기 P비트 레벨 각각에는 상기 정보비트들 중에서 대응되는 정보 비트를 저장하는 단계를 포함하며,상기 멀티 비트레벨 데이터는 다수의 전송심볼들 각각을 대응되는 P비트 레벨로 매핑시킨 매핑 테이블에 기초하여 복호화되고,상기 매핑 테이블 내에서 상기 다수의 전송심볼들 중에서 동일한 전송후보 심볼 집합 내의 각 심볼의 특정 이진벡터는 서로 다르게 설정되며,상기 전송후보 심볼 집합은,상기 전송심볼에 따라 발생될 수 있는 오류 패턴을 고려했을 때, 수신된 심볼에 대한 가능한 모든 전송 심볼들의 집합인 멀티 비트레벨 데이터의 라이트 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
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)
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)
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)
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 |
-
2008
- 2008-04-30 KR KR1020080040877A patent/KR101466695B1/ko active IP Right Grant
-
2009
- 2009-04-24 US US12/429,718 patent/US8656258B2/en active Active
Patent Citations (3)
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 |