KR20080052288A - 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치 - Google Patents

연접 부호화를 이용한 멀티 레벨 셀 메모리 장치 Download PDF

Info

Publication number
KR20080052288A
KR20080052288A KR1020070080179A KR20070080179A KR20080052288A KR 20080052288 A KR20080052288 A KR 20080052288A KR 1020070080179 A KR1020070080179 A KR 1020070080179A KR 20070080179 A KR20070080179 A KR 20070080179A KR 20080052288 A KR20080052288 A KR 20080052288A
Authority
KR
South Korea
Prior art keywords
bit string
bit stream
memory cell
encoding
mlc
Prior art date
Application number
KR1020070080179A
Other languages
English (en)
Inventor
박성정
공준진
이영환
강동구
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070080179A priority Critical patent/KR20080052288A/ko
Publication of KR20080052288A publication Critical patent/KR20080052288A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 멀티 레벨 셀 메모리에 있어서, 하나의 셀에 더 많은 비트를 저장할 수 있도록 하기 위한 에러 검출 및 정정 부호화 방법을 개시한다. 본 발명은 상기 데이터를 제1 인코딩 방법으로 인코딩하여 외부 인코딩된 비트열을 생성하는 외부 인코더와 상기 외부 인코딩된 비트열을 제2 인코딩 방법으로 인코딩하여 내부 인코딩된 비트열을 생성하는 내부 인코더를 포함하고, 내부 디코더와 외부 디코더로 중복하여 에러를 검출 및 정정함으로써, 멀티 레벨 셀 메모리에 있어서, 하나의 셀에 더 많은 비트를 저장할 수 있도록 한다.
Figure P1020070080179
멀티 레벨 셀(multi level cell) 메모리, 내부 코드, 외부 코드

Description

연접 부호화를 이용한 멀티 레벨 셀 메모리 장치{Multi-level Cell Memory Device Using Concatenated Coding}
도 1은 종래기술에 따른 싱글 레벨 셀 (SLC) 메모리의 셀 문턱 전압을 도시한 도면이다.
도 2는 본 발명의 일례에 따른 멀티 레벨 셀 메모리 장치를 도시한 블록도이다.
도 3은 본 발명의 일례에 따른 내부 인코더를 도시한 블록도이다.
도 4는 본 발명의 일례에 따른 모코드 인코더를 도시한 도면이다.
도 5는 본 발명의 일례에 따른 천공부의 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 일례에 따른 MLC 메모리 셀 어레이를 도시한 도면이다.
도 7 및 도 8은 본 발명의 일례에 따른 신호 매핑부 및 신호 디매핑부의 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 일례에 따라 연결정을 수행하는 신호 디매핑부의 동작을 설명하기 위한 도면이다.
도 10은 본 발명의 일례에 따른 내부 디코더를 도시한 블록도이다.
도 11은 본 발명의 일례에 따른 비천공부 및 모코드 디코더의 동작을 설명하기 위한 도면이다.
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 멀티 레벨 메모리 장치 및 상기 멀티 레벨 메모리 장치에 기록 및 판독하는 방법에 관한 것이다.
싱글 레벨 셀(SLC: single-level cell) 메모리는 하나의 메모리 셀에 1비트의 데이터를 저장하는 메모리이다. 싱글 레벨 셀 메모리는 싱글 비트 셀(SBC: single-bit cell) 메모리로도 불린다. 도 1은 종래기술에 따른 싱글 레벨 셀 메모리의 셀 문턱 전압을 도시한 도면이다. 도 1에 도시된 바와 같이 싱글 레벨 셀 메모리에서는 1비트의 데이터는 메모리 셀에 프로그램된 문턱 전압(threshold voltage)에 의하여 구분되는 2개의 산포(distribution)에 포함되는 전압으로 저장되고, 판독된다. 예를 들어, 메모리 셀로부터 판독된 전압이 0.5-1.5 볼트인 경우에는 상기 메모리 셀에 저장된 데이터는 논리 "1"이고, 메모리 셀로부터 판독된 전압이 2.5-3.5 볼트인 경우에는 상기 메모리 셀에 저장된 데이터는 논리 "0"으로 해석된다. 메모리 셀에 저장된 데이터는 판독 동작 시 셀 전류/전압의 차이에 의하여 구분된다.
한편 메모리의 고집적화 요구에 응답하여 하나의 메모리 셀에 2비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC: multi-level cell) 메모리가 제안되었다. 멀티 레벨 셀 메모리는 멀티 비트 셀(MBC: multi-bit cell) 메모리로도 불린 다. 그러나, 하나의 메모리 셀에 저장하는 비트의 수가 증가할수록 신뢰성은 떨어지고, 판독 실패율(read failure rate)은 증가하게 된다. 하나의 메모리 셀에 m개의 비트를 저장하려면, 2m개의 산포(distribution)를 형성하여야 한다. 그러나, 전압 윈도우(voltage window)는 제한되어 있기 때문에, m이 증가함에 따라 인접한 비트들 간의 문턱 전압(threshold)의 차이는 줄어들게 되고, 이에 따라 판독 실패율이 증가한다. 이러한 이유로 종래기술에 따르면, 멀티 레벨 셀(MLC: multi-level cell) 메모리를 이용한 저장 밀도의 향상이 용이하지 않았다.
따라서, 본 발명은 멀티 레벨 셀 메모리에 새로운 에러 정정 방법을 적용함으로써, 멀티 레벨 셀 메모리에 있어서, 하나의 메모리 셀에 저장하는 비트의 수를 안정적으로 증가시키는 것을 목적으로 한다.
또한, 본 발명은 멀티 레벨 셀 메모리에 에러 정정 방법을 적용하면서도, 상기 에러 정정 방법에 의한 오버헤드의 크기를 조절할 수 있도록 하는 것을 목적으로 한다.
또한, 본 발명은 멀티 레벨 셀 메모리에 있어서, 하나의 메모리 셀에 4비트 이상을 저장할 수 있는 고 저장밀도의 멀티 레벨 셀 메모리를 제공하는 것을 목적으로 한다.
또한, 본 발명은 멀티 레벨 셀 메모리에 있어서 랜덤 에러 및 버스트 에러 모두에 강한 에러 정정 방법을 제공하는 것을 목적으로 한다.
상기와 같은 본 발명의 목적을 달성하기 위하여, MLC 메모리 셀, 상기 데이터를 제1 인코딩 방법으로 인코딩하여 외부 인코딩된 비트열(outer encoded bit stream)을 생성하는 외부 인코더(outer encoder), 상기 외부 인코딩된 비트열을 제2 인코딩 방법으로 인코딩하여 내부 인코딩된 비트열(inner encoded bit stream)을 생성하는 내부 인코더(inner encoder), 및 상기 내부 인코딩된 비트열에 따른 프로그램 펄스(program pulse)를 상기 MLC 메모리 셀에 인가(apply)하여 상기 MLC 메모리 셀에 상기 데이터를 기록하는 신호 매핑부(signal mapping module)을 포함하는 멀티 레벨 셀 메모리 장치가 제공된다. 상기 MLC 메모리 셀은 m비트 MLC 메모리 셀이고, 상기 프로그램 펄스는 2m PAM(Pulse Amplitude Modulation)에 의하여 생성 가능한 2m 개의 레벨 중 하나이다.
본 발명의 일측에 따르면, 상기 제1 인코딩 방법은 선형 블록 인코딩(linear block encoding)이고, 상기 제2 인코딩 방법은 길쌈 부호 인코딩(convolutional code encoding)이다.
본 발명의 또 다른 일측에 따르면, 상기 내부 인코더는 상기 외부 인코딩된 비트열을 길쌈 부호 인코딩으로 인코딩하여 길쌈 부호(convolutional code)를 생성하는 모코드 인코더(mother code encoder) 및 상기 길쌈 부호의 일부 비트를 천공(puncturing)하여 상기 내부 인코딩된 비트열을 생성하는 천공부(puncturing module)를 포함한다.
본 발명의 또 다른 일측에 따르는 멀티 레벨 셀 메모리 장치는 MLC 메모리 셀, 판독 신호(read signal)의 인가에 응답하여 상기 MLC 메모리 셀로부터 출력된 출력 펄스(output pulse)로부터 디매핑된 비트열(demapped bit stream)을 생성하는 신호 디매핑부(signal demapping module), 상기 디매핑된 비트열을 제2 디코딩 방법으로 디코딩하여 내부 디코딩된 비트열(inner decoded bit stream)을 생성하는 내부 디코더(inner decoder), 및 상기 내부 디코딩된 비트열을 제1 디코딩 방법으로 디코딩하여 외부 디코딩된 비트열(outer decoded bit stream)을 생성하는 외부 디코더(outer decoder)를 포함한다. 상기 내부 디코더는 상기 디매핑된 비트열에서 검출된(detected) 오류를 정정하여 상기 내부 디코딩된 비트열을 생성하고, 상기 외부 디코더는 상기 내부 디코딩된 비트열에서 검출된 오류를 정정하여 상기 외부 디코딩된 비트열을 생성한다.
본 발명의 또 다른 일측에 따르면, 상기 신호 디매핑부는 상기 출력 펄스로부터 연결정(soft decision)된 상기 디매핑된 비트열을 생성하고, 상기 내부 디코더는 상기 연결정된 상기 디매핑된 비트열의 각각에 대한 비트 값을 결정한다.
본 발명의 또 다른 일측에 따르면, 상기 내부 디코더는 상기 디매핑된 비트열에 천공된 비트를 부가하여 비천공된 비트열(depunctured bit stream)을 생성하는 비천공부(depuncturing module), 및 상기 비천공된 비트열을 비터비 디코딩(Viterbi decoding)으로 디코딩하여 상기 내부 디코딩된 비트열을 생성하는 모코드 디코더(mother code decoder)를 포함한다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바 람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일례에 따른 멀티 레벨 셀 메모리 장치를 도시한 블록도이다.
본 발명에 따른 멀티 레벨 셀 메모리 장치는 외부 인코더(210), 내부 인코더(220), 신호 매핑부(230), MLC 메모리 셀 어레이(240), 신호 디매핑부(270), 내부 디코더(280), 외부 디코더(290)를 포함한다.
도 2에 도시된 바와 같이, 본 발명은 MLC 메모리 장치에 데이터를 저장하고, 판독하기 위하여 외부 부호화(outer coding) 및 내부 부호화(inner coding)의 2 단계를 연결 접속한 연접 부호화(concatenated coding)를 사용한다. 외부 부호화에는 블록 부호화(block coding)를 사용하고, 내부 부호화에는 길쌈 부호화(convolutional coding)를 사용한다. 블록 부호화는 데이터를 일정한 블록 단위로 부호화(encoding) 및 복호화(decoding)하는 방법이다. 길쌈 부호화는 이전 데이터와 현재 데이터를 이용하여 부호화하는 방법이다. 길쌈 부호화는 부호화에 이전 데이터를 이용하기 때문에, 이전 데이터를 저장할 저장장치를 필요로 한다. 블록 부호화는 군집 오류(burst error)의 검출 및 정정에 강하고, 길쌈 부호화는 랜덤 오류(random error)의 검출 및 정정에 강하다. 따라서, 본 발명에서 MLC 메모리 장치에 데이터를 기록할 때, 외부 부호화로 블록 부호화를 사용하고, 내부 부호화로 길쌈 부호화를 사용함으로써, 본 발명은 군집 오류 및 랜덤 오류 모두에 강한 높은 성능의 오류 정정 성능을 갖게 된다.
외부 인코더(outer encoder)(210)는 멀티 레벨 셀(multi level cell) 메모리 장치에 저장할 소스 데이터를 수신하여, 상기 소스 데이터를 제1 인코딩 방법으로 인코딩하여 외부 인코딩된 비트열(outer encoded bit stream)(215)을 생성한다. 상기 제1 인코딩 방법으로는 선형 블록 인코딩(linear block encoding)이 사용될 수 있다.
선형 블록 인코딩에는 Hamming 코딩, BCH 코딩, Reed-Solomon(RS) 코딩, Golay 코딩 등의 방법이 있다. 선형 블록 인코딩은 먼저 소스 데이터를 k 비트 단위로 블록화한다. 즉, 소스 데이터를 k 비트 단위로 분할한다. 외부 인코더(outer encoder)(210)는 이렇게 블록화된 k 비트의 비트열(205)에 r1 비트의 오버헤드를 부가하여 k+r1 비트의 외부 인코딩된 비트열(215)을 생성한다. 따라서, 외부 인코더(210)의 부호화율(code rate)은 k/(k+r1)이 된다. 상기 추가된 r1 비트는 패러티 비트(parity bit)로 k 비트의 비트열(205)에 부가될 수 있다. 이 경우, MLC 메모리로부터 데이터를 판독할 때, 내부 디코더(280)는 상기 r1 비트를 참조하여 k 비트의 데이터에 대한 오류 검출 및 정정을 수행한다.
내부 인코더(inner encoder)(220)는 외부 인코딩된 비트열(215)을 제2 인코딩 방법으로 인코딩하여 내부 인코딩된 비트열(inner encoded bit stream)(225)을 생성한다. 상기 제2 인코딩 방법으로는 길쌈 부호 인코딩(convolutional code encoding)이 사용될 수 있다.
길쌈 부호 인코딩(convolutional code encoding)은 현재의 데이터와 이전의 데이터 간의 상호 연관성(convolutional relation)을 이용하여 오류를 검출 및 정정하는 인코딩이다. 내부 인코더(220)는 k+r1 비트의 외부 인코딩된 비트열(215)을 인코딩하여 k+r1+r2 비트의 내부 인코딩된 비트열(225)을 생성한다. 따라서, 내부 인코더(220)에 의하여 추가되는 오버헤드는 r2 비트이고, 내부 인코더(220)의 부호화율(code rate)은 (k+r1)/(k+r1+r2)가 된다. k+r1+r2를 n으로 하면, 외부 인코더(210) 및 내부 인코더(220) 전체를 통한 부호화율은 k/n이 된다. 길쌈 부호 인코딩는 랜덤 오류(random error)의 검출 및 정정에 강하다.
내부 인코더(220)에 의하여 생성된 내부 인코딩된 비트열(225)은 신호 매핑부(230)에 의하여 MLC 메모리 셀(250)에 저장되게 된다. 따라서, 내부 인코딩된 비트열(225)은 MLC 메모리 셀(250)에 저장되는 최종 디지털 데이터이다. 내부 인코딩된 비트열(225)은 n 비트로 구성되는데, 그 중 일부인 k 비트가 k 비트의 비트열(205)의 값을 그대로 유지하고 있는 경우, 내부 인코딩된 비트열(225)은 시스템적 코드(systematic code)로 불린다. 만일, n 비트의 내부 인코딩된 비트열(225) 중 어느 일부도 k 비트의 비트열(205)의 값을 그대로 유지하고 있지 않은 경우, 내부 인코딩된 비트열(225)은 비시스템적 코드(nonsystematic code)로 불린다. 본 발명은 내부 인코딩된 비트열(225)을 시스템적 코드(systematic code) 또는 비시스템적 코드(nonsystematic code)로 생성할 수 있다. 본 발명에서 내부 인코딩된 비트열(225)을 시스템적 코드(systematic code)로 생성하는 경우, MLC 메모리 셀(250)에 저장되는 데이터도 원래의 k 비트의 비트열(205)의 값을 그대로 유지한 채 저장되게 되는 장점이 있다.
신호 매핑부(signal mapping module)(230)는 내부 인코딩된 비트열(225)에 따른 프로그램 펄스(program pulse)(235)를 MLC 메모리 셀(250)에 인가(apply)하여 MLC 메모리 셀(250)에 데이터를 기록한다. MLC 메모리 셀(250)이 m 비트 MLC 메모리 셀이면, 프로그램 펄스(235)는 2m PAM(Pulse Amplitude Modulation)에 의하여 생성 가능한 2m 개의 레벨 중 하나가 된다.
MLC 메모리 셀 어레이(240)는 복수 개의 MLC 메모리 셀(240) 및 감지 증폭기(sense amplifier)(260)를 포함한다. 감지 증폭기(260)는 MLC 메모리 셀(240)에 저장된 데이터에 관한 신호를 수신하여, 이를 감지 증폭한다. 상기 MLC 메모리 셀(240)은 MLC 플래시 메모리의 메모리 셀일 수 있다.
신호 디매핑부(signal demapping module)(270)는 판독 신호(read signal)의 인가에 응답하여 MLC 메모리 셀(250)로부터 출력된 출력 펄스(output pulse)(245)로부터 디매핑된 비트열(demapped bit stream)(275)을 생성한다. MLC 메모리 셀(250)이 N 비트 MLC 메모리 셀인 경우, 신호 디매핑부(270)는 2N개의 산포(distribution)의 문턱 전압(threshold voltage)과 출력 펄스(245)를 비교하여 출력 펄스(245)에 대응한 디매핑된 비트열(275)을 생성한다.
신호 디매핑부(270)는 출력 펄스(245)로부터 경결정(hard decision) 또는 연결정(soft decision)하여 디매핑된 비트열(275)을 생성할 수 있다. 경결정은 신호 디매핑부(270)가 출력 펄스(245)로부터 디매핑된 비트열(275)의 비트의 각각의 값을 "0"인지 "1"인지를 명확하게 결정하는 방법이다. 연결정은 신호 디매핑부(270) 가 출력 펄스(245)로부터 디매핑된 비트열(275)의 비트의 각각의 값을 "0"인지 "1"인지를 명확하게 결정하지 않고, "확실한 0", "0인데 확실하지 않음" 등과 같은 형태로 결정하는 방법이다. 따라서, 신호 디매핑부(270)가 연결정을 하는 경우, 내부 디코더(280) 등에서 신호 디매핑부(270)로부터 수신한 정보를 참조하여 각 비트의 값을 결정하게 된다. 신호 디매핑부(270)가 연결정을 하는 경우, 신호 디매핑부(270)에 의하여 생성된 디매핑된 비트열(275)은 통상 내부 인코딩된 비트열(225)의 n(=k+r1+r2) 비트보다 더 많은 비트 수를 가지게 된다. 추가의 비트는 각 비트의 결정된 값의 정확도에 관한 정보를 포함한다. 신호 디매핑부(270)가 경결정을 하는 경우, 신호 디매핑부(270)에 의하여 생성된 디매핑된 비트열(275)은 내부 인코딩된 비트열(225)에 대응하여 n(=k+r1+r2) 비트를 가지게 된다.
내부 디코더(inner decoder)(280)는 디매핑된 비트열(275)을 제2 디코딩 방법으로 디코딩하여 내부 디코딩된 비트열(inner decoded bit stream)(285)을 생성한다. 상기 제2 디코딩 방법으로는 길쌈 부호 디코딩(convolutional code decoding)이 사용될 수 있다. 내부 디코더(280)는 k+r1+r2 비트의 디매핑된 비트열(275)을 디코딩하여 k+r1 비트의 내부 디코딩된 비트열(285)을 생성한다. 내부 디코더는 제2 디코딩 방법을 이용하여 디매핑된 비트열(275)에 포함된 오류를 검출하고, 검출된 오류를 정정한다. 제2 디코딩 방법으로 길쌈 부호 디코딩을 사용하는 경우, 랜덤 오류(random error)의 검출 및 정정에 유리하다.
외부 디코더(outer decoder)(290)는 내부 디코딩된 비트열(285)을 제1 디코딩 방법으로 디코딩하여 외부 디코딩된 비트열(outer decoded bit stream)(295)을 생성한다. 외부 디코더(290)는 제1 디코딩 방법을 이용하여 내부 디코딩된 비트열(285)에 포함된 오류를 검출하고, 검출된 오류를 정정한다. 제1 디코딩 방법은 제1 인코딩 방법에 대응하는 디코딩 방법이 사용된다. 제1 인코딩 방법으로 Hamming 코딩, BCH 코딩, Reed-Solomon(RS) 코딩, Golay 코딩 등의 선형 블록 인코딩이 사용된 경우, 제1 디코딩 방법도 이에 대응한 선형 블록 디코딩이 사용된다. 예를 들어, 제1 인코딩 방법으로 RS 코딩에 따른 인코딩을 사용한 경우, 제1 디코딩 방법도 RS 코딩에 따른 디코딩을 사용한다. 선형 블록 코딩을 사용하는 경우, 외부 디코더(290)는 군집 오류(burst error)의 검출 및 정정에 유리하다.
이와 같이, 내부 디코더(280)는 디매핑된 비트열(275)에서 검출된(detected) 오류를 정정하여 내부 디코딩된 비트열(285)을 생성하고, 외부 디코더(290)는 내부 디코딩된 비트열(285)에서 검출된 오류를 정정하여 외부 디코딩된 비트열(295)을 생성하는 2단계의 에러 검출 및 정정을 수행한다. 따라서, 본 발명에 따르면, MLC 메모리의 판독 시 독출된 신호를 보다 정확하게 판독할 수 있게 되어, 고밀도의 MLC 메모리를 구현할 수 있게 된다.
디코딩 방법에 따라 오류의 검출 및 오류의 정정 능력에 차이가 있는 경우가 있다. 예를 들어, 오류의 검출은 4 비트까지 가능하지만, 오류의 정정은 3비트까지만 가능한 경우이다. 이 경우, 오류가 4비트 발생한 경우, 외부 디코더(290)는 오류가 발생한 것은 검출할 수 있지만, 오류의 정정은 불가능하다. 이 경우, 외부 디코더(290)는 외부 디코딩된 비트열(outer decoded bit stream)(295)을 수신할 객체(예를 들어, 운영 체제, 메모리 관리 프로그램 등)에게 오류로 검출되었으 나 정정되지 않은 오류에 대하여 보고할 수 있다. 그러면, 상기 객체는 이 보고에 기초하여 추가적인 동작을 수행함으로써, 메모리 사용을 보다 효율적으로 할 수 있게 된다.
도 3은 본 발명의 일례에 따른 내부 인코더를 도시한 블록도이다.
도 3에서는, 본 발명의 일 실시예에 따라, 모코드 인코더(mother code encoder)(222) 및 천공부(puncturing module)(224)를 포함한 내부 인코더(220)를 도시하였다.
모코드 인코더(mother code encoder)(222)는 외부 인코딩된 비트열(215)을 길쌈 부호 인코딩으로 인코딩하여 길쌈 부호(convolutional code)(223)를 생성한다. 길쌈 부호 인코딩(convolutional code encoding)은 현재의 데이터와 이전의 데이터 간의 상호 연관성(convolutional relation)을 이용하여 오류를 검출 및 정정하는 인코딩이다.
도 4는 본 발명의 일례에 따라 길쌈 부호 인코딩을 수행하는 모코드 인코더를 도시한 도면이다. 도 4에서 도면 부호(421, 422, 423, 424, 245, 426)은 D 플립플롭(D-flipflop)을 나타낸다. 입력 데이터(430)는 1 클록마다 1 비트씩 D 플립플롭(421)으로 시프트(shift)되고, 마찬가지로, D 플립플롭(421, 422, 423, 424, 245)의 데이터들도, 각각 오른쪽의 D플립플롭(422, 423, 424, 245, 426)으로 시프트된다. 도 4의 입력 데이터(430)는 외부 인코딩된 비트열(215)일 수 있다. 도 4에 도시된 바와 같이, 연산 유닛(411)은 입력 데이터(430), D플립플롭(422)의 출력, D플립플롭(423)의 출력, D플립플롭(425)의 출력, D플립플롭(426)의 출력을 익 스클루시브 OR(exclusive OR)하여 출력 데이터 A(440)를 생성하는 연산 유닛(operation unit)이다. 연산 유닛(412)는 입력 데이터(430), D플립플롭(421)의 출력, D플립플롭(422)의 출력, D플립플롭(423)의 출력, D플립플롭(426)의 출력을 익스클루시브 OR(exclusive OR)하여 출력 데이터 B(450)를 생성한다. 즉, 도 4의 모코드 인코더는 1비트의 입력에 대해 2비트의 길쌈 부호 인코딩된 코드를 생성한다.
도 4의 길쌈 부호화 인코더는 K=7의 구속장(constraint length)를 가진다. 구속장은 모코드 인코더의 출력에 관여하는 입력의 총 개수인데, 달리 말하면 모코드 인코더의 출력에 영향을 미치는 데이터가 저장된 메모리의 총 길이이다. 구속장 K는 레지스터의 개수를 m이라고 할 때, K=m+1이 된다. 예를 들어, 구속장이 7이면, 6비트의 레지스터와 1 비트의 입력 데이터로 길쌈 부호화를 수행하는 것이다. 도 4에서 D 플립플롭의 수가 6개이고, 상기 6개의 D 플립플롭 및 1비트의 입력 데이터가 출력 데이터에 영향을 미치므로, 도 4의 길쌈 부호화 인코더는 m=6이고, K=6+1=7의 구속장을 갖는다.
도 5를 참조하면, 도 4의 모코드 인코더를 이용하여 7비트의 입력 데이터(510)가 14비트의 길쌈 부호(520)로 생성된다. 즉, 도 4의 모코드 인코더는 1/2의 부호화율을 가지는 길쌈 부호화 인코더이다. 도 3의 모코드 인코더(222)로 도 4의 길쌈 부호화 인코더가 사용되면, 외부 인코딩된 비트열(215)은 입력 데이터(430) 및 입력 데이터(510)이고, 길쌈 부호(convolutional code)(223)는 길쌈 부호(520)가 된다.
천공부(puncturing module)(224)는 길쌈 부호(223)의 일부 비트를 천공(puncturing)하여 내부 인코딩된 비트열(225)을 생성한다. 천공(puncturing)이란 입력된 데이터 중 일부 비트를 제거하는 것을 말한다. 예를 들어, 천공부(224)는 미리 정해진 규칙에 따라 길쌈 부호(223)의 일부 비트를 제거하여 내부 인코딩된 비트열(225)을 생성한다. 도 5에 도시된 비트열이 도 3에 의하여 생성된 경우, 외부 인코딩된 비트열(510)은 모코드 인코더(222)에 의하여 1/2의 부호화율로 길쌈 부호(520)로 부호화된다. 외부 인코딩된 비트열(510)이 7비트이면 길쌈 부호(520)는 14비트로 구성된다. 상기 길쌈 부호(520) 중에서 미리 정해진 규칙에 따라 A4, A6, B1, B2, B3, B5의 6개 비트를 제거하여 8비트의 내부 인코딩된 비트열(530)을 생성한다. 따라서, 도 5에 따르는 내부 인코더는 7/8의 부호화율을 가지게 된다.
도 5에 도시된 천공은 6개 비트를 제거하였으나, 본 발명의 다른 실시예에서는 다른 개수의 비트를 제거할 수 있다. 이와 같이, 본 발명은 천공부(224)를 포함하여 내부 인코딩의 부호화율을 조절할 수 있다. 즉, 본 발명에 따르면, 천공(puncturing)을 이용하여 멀티 레벨 셀 메모리에 에러 정정 방법을 적용하면서도, 상기 에러 정정 방법에 의한 오버헤드의 크기를 조절할 수 있다. 따라서, 본 발명에 따르면, 한 셀 당 저장하는 비트의 수와 무관하게 원하는 부호화율(code rate)을 얻을 수 있다.
본 발명의 또 다른 실시예에 따르면, 내부 인코더(220)는 천공부(224) 없이 모코드 인코더(222)만으로 구성될 수 있다. 이 경우, 모코드 인코더(222)는 외부 인코딩된 비트열(215)을 길쌈 부호 인코딩으로 인코딩하여 길쌈 부 호(convolutional code)(223)를 생성할 뿐, 천공은 수행하지 않는다.
도 6은 본 발명의 MLC 메모리 셀 어레이의 일례인 플래시 메모리의 메모리 셀 어레이를 도시한 도면이다. 도 6에서 B/L0 내지 B/L511은 비트 라인들을 나타내고, W/L0 내지 W/L1023은 워드라인들을 나타낸다. S/L은 소스 라인을 나타내고, MC는 메모리 셀들을 나타낸다. 도 6에 도시된 메모리 셀 어레이의 메모리 셀은 하나의 메모리 셀에 2비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC: multi-level cell) 메모리 셀이다.
도 7 및 도 8은 본 발명의 일례에 따른 신호 매핑부(230) 및 신호 디매핑부(270)의 동작을 설명하기 위한 도면이다. 도 7은 하나의 메모리 셀이 2비트의 데이터를 저장하기 위한 신호 매핑을 설명하기 위한 도면이고, 도 8은 하나의 메모리 셀에 4 비트의 데이터를 저장하기 위한 신호 매핑을 설명하기 위한 도면이다.
도 7을 참조하면, 신호 디매핑부(270)는 MLC 메모리 셀(250)로부터 얻어진 전압이 0.5-1.0볼트이면 논리 "11", MLC 메모리 셀(250)로부터 얻어진 전압이 1.5-2.0볼트이면 논리 "10", MLC 메모리 셀(250)로부터 얻어진 전압이 2.5-3.0볼트이면 논리 "01", MLC 메모리 셀(250)로부터 얻어진 전압이 3.5-4.0볼트이면 논리 "00"로 판단한다. MLC 메모리 셀(250)에 저장된 데이터는 독출(read) 동작 시 셀 전류 또는 셀 전압의 차이에 의하여 구분된다.
마찬가지로, 신호 매핑부(230)는 내부 인코딩된 비트열(225)의 비트가 논리 "11"이면 MLC 메모리 셀(250)이 저장하는 전압 레벨이 0.5-1.0볼트가 되도록 프로그램 펄스를 MLC 메모리 셀(250)에 인가(apply)한다. 이때, 프로그램 펄스는 PAM(pulse amplitude modulation)에 의하여 생성한다. 신호 매핑부(230)는 내부 인코딩된 비트열(225)의 비트가 논리 "10"이면 MLC 메모리 셀(250)이 저장하는 전압 레벨이 1.5-2.0볼트가 되도록 프로그램 펄스를 MLC 메모리 셀(250)에 인가(apply)한다. 신호 매핑부(230)는 내부 인코딩된 비트열(225)의 비트가 논리 "01"이면 MLC 메모리 셀(250)이 저장하는 전압 레벨이 2.5-3.0볼트가 되도록 프로그램 펄스를 MLC 메모리 셀(250)에 인가(apply)한다. 신호 매핑부(230)는 내부 인코딩된 비트열(225)의 비트가 논리 "00"이면 MLC 메모리 셀(250)이 저장하는 전압 레벨이 3.5-4.0볼트가 되도록 프로그램 펄스를 MLC 메모리 셀(250)에 인가(apply)한다.
MLC 메모리 셀(250)이 MLC 플래시 메모리 셀인 경우, 논리 "01"을 MLC 메모리 셀(250)에 기록하는 경우를 설명한다. 신호 매핑부(230)는 기록할 MLC 메모리 셀(250)을 소거시킨 상태에서 워드 라인 전압을 조금씩 증가시키면서 MLC 메모리 셀(250)의 전압을 양의 방향으로 조금씩 증가시키고, 메모리 셀의 문턱 전압(threshold voltage)가 2.5-3.0 볼트에 도달하였는지 검증(verify)한다. 따라서, 논리 "01"을 MLC 메모리 셀(250)에 기록하기 위하여, MLC 메모리 셀(250)은 논리 "11" 및 논리 "10"의 상태를 순차적으로 거쳐 논리 "01"의 상태가 된다.
도 8은 신호 매핑부(230)가 그레이 코딩(Gray coding)에 따라 MLC 메모리 셀(250)에 데이터를 기록하는 동작을 설명하기 위한 도면이다. 그레이 코딩은 인접하는 부호 사이의 해밍 거리(Hamming distance)를 1로 하는 부호화(coding) 방법이다. 도 8에 도시된 바와 같이, 인접한 두 부호, 예를 들어, 부호 "1100"과 부호 "1101"은 1비트만 차이가 난다. 신호 디매핑부(270)에서 MLC 메모리 셀(250)로부터 얻어진 전압 레벨로 부호를 얻을 때, 상기 전압 레벨이 부호 "1100"과 부호 "1101"의 중간 값인 경우, 신호 디매핑부(270)는 이를 부호 "1100"과 부호 "1101" 중 하나의 값으로 결정하는데, 이 경우 1비트만 틀리게 된다. 만약 인접한 부호의 비트 차이가 2 비트 이상 난다면, 이런 경우 2 비트 이상 틀리게 된다. 따라서, 그레이 코딩을 사용하면, 신호 디매핑부(270)에서 잘못된 부호로 결정하더라도 그 에러는 최소화된다.
도 8에서 신호 매핑부(230)는 하나의 메모리 셀에 4 비트의 데이터를 저장한다. MLC 메모리 셀(250)이 m 비트 메모리 셀인 경우, 신호 매핑부(230)는 내부 인코딩된 비트열(225)에 따라 2m PAM(Pulse Amplitude Modulation)에 의하여 생성 가능한 2m 개의 레벨 중 하나를 결정하여, 상기 결정된 레벨의 프로그램 펄스를 MLC 메모리 셀(250)에 인가한다.
도 7 및 도 8에서 알 수 있는 바와 같이, 하나의 메모리 셀에 대한 전압 윈도우는 제한되어 있다. 도 7 및 도 8의 경우 MLC 메모리 셀의 전압 윈도우가 -2.5볼트(마이너스 2.5 볼트)부터 4볼트까지이다. 이렇게 제한된 전압 윈도우 내에서 도 7은 하나의 MLC 메모리 셀에 2개의 비트를 저장하여야 하므로, 4개의 산포를 형성하여야 하고, 도 8은 하나의 MLC 메모리 셀에 4개의 비트를 저장하여야 하므로, 16개의 산포를 형성하여야 한다. 이와 같이, 하나의 메모리 셀에 m개의 비트를 저장하려면, 2m개의 산포(distribution)를 형성하여야 하는데, 전압 윈도우(voltage window)는 제한되어 있기 때문에, m이 증가함에 따라 인접한 비트들 간의 문턱 전압(threshold)의 차이는 줄어들게 된다. 따라서, MLC 메모리 셀에의 기록 및 판독 시 오류 발생 가능성이 높아지는데, 본 발명은 내부 인코딩과 외부 인코딩의 2 단계를 연결 접속한 연접 부호화(concatenated coding)를 사용하여, 이러한 오류를 검출 및 정정함으로써, 하나의 메모리 셀에 4비트 이상을 저장하는 고밀도 MLC 셀 메모리 장치를 가능하게 한다.
도 9는 본 발명의 일례에 따라 연결정을 수행하는 신호 디매핑부의 동작을 설명하기 위한 도면이다.
신호 매핑부(230)가 그레이 코딩을 사용한 경우, 신호 디매핑부(270)도 그레이 코딩을 사용한다. 신호 디매핑부(270)가 연결정을 수행하는 경우, 신호 디매핑부(270)에 의하여 생성되는 디매핑된 비트열(275)은 그레이 코딩에 의하여 생성된 비트열 및 식 1에 의하여 추가로 생성된 비트열을 포함하여 생성될 수 있다.
[식 1]
Figure 112007057901542-PAT00001
a(1)(x)는 MLC 메모리 셀(250)로부터 출력된 출력 펄스가 도 9에 도시된 산포(distribution)에 포함하는 경우, 도 9에 도시된 값을 갖는 함수이다. 예를 들 어, MLC 메모리 셀(250)로부터 출력된 출력 펄스가 1.75 볼트 이상의 값을 가지면, a(1)(x)의 값은 1.75가 된다. 만약, MLC 메모리 셀(250)로부터 출력된 출력 펄스가 0.5 볼트의 값을 가지면, a(1)(x)의 값은 0.5가 된다. x는 출력 펄스의 전압 값이다. a(2)(x)는 MLC 메모리 셀(250)로부터 출력된 출력 펄스가 도 9에 도시된 산포(distribution)에 포함하는 경우, 도 9에 도시된 값을 갖는 함수이다. 예를 들어, MLC 메모리 셀(250)로부터 출력된 출력 펄스가 2.0 볼트 이하의 값을 가지면, a(2)(x)의 값은 2.0이 된다. 만약, MLC 메모리 셀(250)로부터 출력된 출력 펄스가 3.0 볼트의 값을 가지면, a(2)(x)의 값은 3.0이 된다.
식 1에 의한 값은 신호 디매핑부(270)에 의하여 결정된 비트 값의 정확도에 관한 부가 정보가 된다. 이와 같이 신호 디매핑부(270)가 출력 펄스(245)로부터 연결정된 디매핑된 비트열(275)을 생성하면, 내부 디코더(280)는 상기 부가 정보 및 자신에 의하여 얻어진 다른 정보를 이용하여 상기 연결정된 디매핑된 비트열(275) 중 그레이 코딩에 의하여 생성된 비트열을 명확하게 결정한다.
도 10은 본 발명의 일례에 따른 내부 디코더를 도시한 블록도이다.
도 10에서는, 본 발명의 일 실시예에 따라, 비천공부(depuncturing module) (282) 및 모코드 디코더(mother code decoder)(284)를 포함한 내부 디코더(280)가 도시되어 있다.
비천공부(depuncturing module)(282)는 디매핑된 비트열(275)에 천공된 비트 를 부가하여 비천공된 비트열(depunctured bit stream)(283)을 생성한다. 비천공부(282)의 비천공(depuncturing)은 천공부(224)의 천공(puncturing)에 대응한다. 비천공이란 천공에 의하여 제거된 비트를 부가하여 원래의 비트열을 복구하는 것을 말한다. 예를 들어, 천공부(224)가 미리 정해진 규칙에 따라 길쌈 부호(223)의 일부 비트를 제거하여 내부 인코딩된 비트열(225)을 생성한 경우, 비천공부(282)는 상기 규칙에 대응하여 디매핑된 비트열(275)에 천공된 비트를 부가하여 비천공된 비트열(depunctured bit stream)(283)을 생성한다.
모코드 디코더(mother code decoder)(284)는 비천공된 비트열(283)을 비터비 디코딩(Viterbi decoding)으로 디코딩하여 내부 디코딩된 비트열(285)을 생성한다. 비터비 디코딩은 모코드 인코더(222)의 길쌈 부호 인코딩에 대응한다.
도 11은 본 발명의 일례에 따른 비천공부 및 모코드 디코더의 동작을 설명하기 위한 도면이다.
도 11을 참조하면, 신호 디매핑부(270)로부터 출력된 디매핑된 비트열(1110)은 7비트를 가진다. 디매핑된 비트열(1110)은 비천공부(282)에 의하여 비천공된 비트열(1120)로 생성된다. 도 11에서 비천공된 비트열(1120)은 도 5에서 천공된 비트열들이 복구되어, 14 비트를 가진다. 도 5에서 천공되었던 A4, A6, B1, B2, B3, B5의 6개 비트가 부가되었다. 모코드 디코더(mother code decoder)(284)는 비천공된 비트열(1120)을 디코딩하여 7비트의 내부 디코딩된 비트열(1130)을 생성한다.
본 발명의 또 다른 실시예에 따르면, 내부 디코더(280)는 비천공부(282) 없 이 모코드 디코더(284)만으로 구성될 수 있다. 이 경우, 내부 디코더(280)는 디매핑된 비트열(275)을 비터비 디코딩(Viterbi decoding)하여 내부 디코딩된 비트열(285)을 생성할 뿐, 비천공은 수행하지 않는다.
또한 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
예를 들어, 본 발명에서 설명된 외부 인코더(210), 내부 인코더(220), 신호 매핑부(230), 신호 디매핑부(270), 내부 디코더(280), 및 외부 디코더(290) 중 일부가 컴퓨터 프로그램으로 구현될 수 있다. 이 경우에 상기 컴퓨터 프로그램도 본 발명에 포함된다.
이와 같이, 본 발명에 따르면, 멀티 레벨 셀 메모리에 새로운 에러 정정 방법을 적용함으로써, 하나의 메모리 셀에 저장하는 비트의 수를 안정적으로 증가시킬 수 있다. 특히, 종래에는 하나의 메모리 셀에 4비트 이상을 저장할 수 있는 고 저장밀도의 멀티 레벨 셀 메모리는 전혀 제안되지 아니하였으나, 본 발명을 이용하면, 하나의 메모리 셀에 4 비트 이상을 저장할 수 있는 멀티 레벨 셀 메모리가 가능하다.
본 발명을 적용한 멀티 레벨 셀 메모리는 추가적인 회로가 필요한 오버헤드가 있으나, 이러한 오버헤드보다 본 발명을 적용함으로써 얻어지는 메모리의 데이터 용량의 증가가 더 크다.
또한, 멀티 레벨 메모리에 적용된 종래의 에러 정정 방법은 로 에러율(raw error rate)가 높은 경우, 예를 들어, 비트 에러율(BER: bit error rate)가 0.01보다 큰 경우에는 적용이 불가능하였으나, 본 발명은 로 에러율이 높은 경우에도 적용 가능하다. 멀티 레벨 셀 메모리에서 하나의 비트에 저장하는 비트의 수를 증가시키면, 인접한 비트들 간의 문턱 전압(threshold)의 차이는 줄어들게 되고, 이에 따라 판독 실패율이 증가하지만, 본 발명을 적용하면, 이러한 문제가 해결된다.
또한, 본 발명은 천공(puncturing)을 이용하여 멀티 레벨 셀 메모리에 에러 정정 방법을 적용하면서도, 상기 에러 정정 방법에 의한 오버헤드의 크기를 조절할 수 있다. 따라서, 본 발명에 따르면, 한 셀 당 저장하는 비트의 수와 무관하게 원하는 부호화율(code rate)을 얻을 수 있다.
또한 본 발명에 따르면, 멀티 레벨 셀 메모리에서 판독된 신호에 포함된 오류가 정정됨으로써, 플래시 메모리의 신뢰성, 양산성 등이 높아진다.
또한, 본 발명에 따르면, 멀티 레벨 셀 메모리에 있어서 랜덤 에러 및 버스트 에러 모두에 강한 에러 정정 방법이 제공된다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (22)

  1. 데이터를 저장하는 멀티 레벨 셀(multi level cell) 메모리 장치에 있어서,
    MLC 메모리 셀;
    상기 데이터를 제1 인코딩 방법으로 인코딩하여 외부 인코딩된 비트열(outer encoded bit stream)을 생성하는 외부 인코더(outer encoder);
    상기 외부 인코딩된 비트열을 제2 인코딩 방법으로 인코딩하여 내부 인코딩된 비트열(inner encoded bit stream)을 생성하는 내부 인코더(inner encoder); 및
    상기 내부 인코딩된 비트열에 따른 프로그램 펄스(program pulse)를 상기 MLC 메모리 셀에 인가(apply)하여 상기 MLC 메모리 셀에 상기 데이터를 기록하는 신호 매핑부(signal mapping module)
    를 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  2. 제1항에 있어서,
    상기 MLC 메모리 셀은 m 비트 MLC 메모리 셀이고, 상기 프로그램 펄스는 2m PAM(Pulse Amplitude Modulation)에 의하여 생성 가능한 2m 개의 레벨 중 하나인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  3. 제1항에 있어서,
    상기 제1 인코딩 방법은 선형 블록 인코딩(linear block encoding)인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  4. 제1항에 있어서,
    상기 제2 인코딩 방법은 길쌈 부호 인코딩(convolutional code encoding)인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  5. 제1항에 있어서, 상기 내부 인코더는,
    상기 외부 인코딩된 비트열을 길쌈 부호 인코딩으로 인코딩하여 길쌈 부호(convolutional code)를 생성하는 모코드 인코더(mother code encoder); 및
    상기 길쌈 부호의 일부 비트를 천공(puncturing)하여 상기 내부 인코딩된 비트열을 생성하는 천공부(puncturing module)
    을 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  6. 제1항에 있어서,
    상기 내부 인코더에 의하여 생성된 상기 내부 인코딩된 비트열(inner encoded bit stream)은 시스템적 코드(systematic code)인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  7. 제1항에 있어서,
    상기 내부 인코더에 의하여 생성된 상기 내부 인코딩된 비트열(inner encoded bit stream)은 비시스템적 코드(non-systematic code)인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  8. 제1항에 있어서,
    상기 신호 매핑부는 그레이 코딩(gray coding)에 따라 상기 프로그램 펄스를 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  9. 제1항에 있어서,
    판독 신호(read signal)의 인가에 응답하여 상기 MLC 메모리 셀로부터 출력된 출력 펄스(output pulse)로부터 디매핑된 비트열(demapped bit stream)을 생성하는 신호 디매핑부(signal demapping module)
    를 더 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  10. 제9항에 있어서,
    상기 신호 디매핑부는 상기 출력 펄스로부터 경결정(hard decision)된 상기 디매핑된 비트열을 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  11. 제9항에 있어서,
    상기 디매핑된 비트열을 제2 디코딩 방법으로 디코딩하여 내부 디코딩된 비 트열(inner decoded bit stream)을 생성하는 내부 디코더(inner decoder)
    를 더 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  12. 제11항에 있어서,
    상기 신호 디매핑부는 상기 출력 펄스로부터 연결정(soft decision)된 상기 디매핑된 비트열을 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  13. 제11항에 있어서,
    상기 제2 디코딩 방법은 길쌈 부호 디코딩(convolutional code decoding)인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  14. 제11항에 있어서, 상기 내부 디코더는,
    상기 디매핑된 비트열에 천공된 비트를 부가하여 비천공된 비트열(depunctured bit stream)을 생성하는 비천공부(depuncturing module); 및
    상기 비천공된 비트열을 비터비 디코딩(Viterbi decoding)으로 디코딩하여 상기 내부 디코딩된 비트열을 생성하는 모코드 디코더(mother code decoder)
    를 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  15. 제11항에 있어서,
    상기 내부 디코딩된 비트열을 제1 디코딩 방법으로 디코딩하여 외부 디코딩 된 비트열(outer decoded bit stream)을 생성하는 외부 디코더(outer decoder)
    를 더 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  16. 제1항에 있어서,
    상기 MLC 메모리 셀은 MLC 플래시 메모리의 메모리 셀인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  17. 데이터를 저장하는 멀티 레벨 셀(multi-level cell) 메모리 장치에 있어서,
    MLC 메모리 셀;
    판독 신호(read signal)의 인가에 응답하여 상기 MLC 메모리 셀로부터 출력된 출력 펄스(output pulse)로부터 디매핑된 비트열(demapped bit stream)을 생성하는 신호 디매핑부(signal demapping module);
    상기 디매핑된 비트열을 제2 디코딩 방법으로 디코딩하여 내부 디코딩된 비트열(inner decoded bit stream)을 생성하는 내부 디코더(inner decoder); 및
    상기 내부 디코딩된 비트열을 제1 디코딩 방법으로 디코딩하여 외부 디코딩된 비트열(outer decoded bit stream)을 생성하는 외부 디코더(outer decoder)
    를 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  18. 제17항에 있어서,
    상기 내부 디코더는 상기 디매핑된 비트열에서 검출된(detected) 오류를 정 정하여 상기 내부 디코딩된 비트열을 생성하고, 상기 외부 디코더는 상기 내부 디코딩된 비트열에서 검출된 오류를 정정하여 상기 외부 디코딩된 비트열을 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  19. 제18항에 있어서,
    상기 외부 디코더는 상기 내부 디코딩된 비트열에서 오류로 검출되었으나 정정되지 않은 오류를 보고하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  20. 제17항에 있어서,
    상기 신호 디매핑부는 상기 출력 펄스로부터 연결정(soft decision)된 상기 디매핑된 비트열을 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  21. 제17항에 있어서,
    상기 MLC 메모리 셀은 m 비트 MLC 메모리 셀이고,
    상기 신호 디매핑부는 2m 개의 산포의 문턱 전압(threshold voltage)과 상기 출력 펄스를 비교하여 상기 출력 펄스에 대응한 상기 디매핑된 비트열을 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  22. 제17항에 있어서,
    상기 MLC 메모리 셀은 MBC 플래시 메모리의 메모리 셀인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
KR1020070080179A 2007-08-09 2007-08-09 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치 KR20080052288A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070080179A KR20080052288A (ko) 2007-08-09 2007-08-09 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070080179A KR20080052288A (ko) 2007-08-09 2007-08-09 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020060123339A Division KR100766042B1 (ko) 2006-12-06 2006-12-06 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치

Publications (1)

Publication Number Publication Date
KR20080052288A true KR20080052288A (ko) 2008-06-11

Family

ID=39807127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070080179A KR20080052288A (ko) 2007-08-09 2007-08-09 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치

Country Status (1)

Country Link
KR (1) KR20080052288A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8587997B2 (en) 2010-03-02 2013-11-19 Samsung Electronics Co., Ltd. Memory system to determine interference of a memory cell by adjacent memory cells, and operating method thereof
US9595341B2 (en) 2010-03-02 2017-03-14 Samsung Electronics Co., Ltd. Memory system to determine interference of a memory cell by adjacent memory cells, and operating method thereof
US10439642B2 (en) 2016-12-29 2019-10-08 SK Hynix Inc. Error correction method of data storage device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8587997B2 (en) 2010-03-02 2013-11-19 Samsung Electronics Co., Ltd. Memory system to determine interference of a memory cell by adjacent memory cells, and operating method thereof
US9595341B2 (en) 2010-03-02 2017-03-14 Samsung Electronics Co., Ltd. Memory system to determine interference of a memory cell by adjacent memory cells, and operating method thereof
US10439642B2 (en) 2016-12-29 2019-10-08 SK Hynix Inc. Error correction method of data storage device
US10917111B2 (en) 2016-12-29 2021-02-09 SK Hynix Inc. Error correction code unit and error correction method

Similar Documents

Publication Publication Date Title
KR100766042B1 (ko) 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
KR100785925B1 (ko) Tcm을 이용한 멀티 레벨 셀 메모리 장치
KR100822030B1 (ko) 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치
US8713401B2 (en) Error recovery storage along a memory string
US7533328B2 (en) Method of error correction in a multi-bit-per-cell flash memory
US8392809B1 (en) Log-likelihood-ratio (LLR) table calibration
US9582359B2 (en) Write mapping to mitigate hard errors via soft-decision decoding
US20080034272A1 (en) System and method for correcting errors in non-volatile memory using product codes
US20080294935A1 (en) Data structure for flash memory and data reading/writing method thereof
US20140149828A1 (en) Solid state drive and joint encoding/decoding method thereof
US8276046B2 (en) Apparatus for determining number of bits to be stored in memory cell
JP2008165805A (ja) フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム
US9047213B2 (en) Coding architecture for multi-level NAND flash memory with stuck cells
US8196011B2 (en) Error detection and correction circuit and semiconductor memory
KR20080052288A (ko) 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
US20110167318A1 (en) Reading method of a memory device with embedded error-correcting code and memory device with embedded error-correcting code
KR20090011230A (ko) 코드 인코딩/디코딩 장치 및 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E601 Decision to refuse application