KR100822030B1 - 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치 - Google Patents

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

Info

Publication number
KR100822030B1
KR100822030B1 KR1020060134049A KR20060134049A KR100822030B1 KR 100822030 B1 KR100822030 B1 KR 100822030B1 KR 1020060134049 A KR1020060134049 A KR 1020060134049A KR 20060134049 A KR20060134049 A KR 20060134049A KR 100822030 B1 KR100822030 B1 KR 100822030B1
Authority
KR
South Korea
Prior art keywords
bit
bit string
encoder
mlc
mlc memory
Prior art date
Application number
KR1020060134049A
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 KR1020060134049A priority Critical patent/KR100822030B1/ko
Priority to US11/802,656 priority patent/US8499215B2/en
Priority to JP2009543914A priority patent/JP5091253B2/ja
Priority to PCT/KR2007/003260 priority patent/WO2008078866A1/en
Application granted granted Critical
Publication of KR100822030B1 publication Critical patent/KR100822030B1/ko
Priority to US13/936,857 priority patent/US20130294158A1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • 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
    • G11C16/10Programming or data input circuits
    • 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
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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

Abstract

본 발명은 멀티 레벨 셀 메모리에 있어서, 하나의 셀에 더 많은 비트를 저장할 수 있도록 하기 위한 에러 검출 및 정정 부호화 방법을 개시한다. 본 발명은 a개의 m비트 MLC 메모리 셀, k 비트 데이터를 k/n의 부호화율로 인코딩하여 인코딩된 비트열을 생성하는 인코더, 및 상기 인코딩된 비트열에 따른 펄스를 상기 a개의 m비트 MLC 메모리 셀에 인가하여 상기 a개의 m비트 MLC 메모리 셀에 상기 데이터를 기록하는 신호 매핑부를 포함하는 멀티 레벨 셀 메모리 장치를 제공한다.
Figure R1020060134049
멀티 레벨 셀(multi level cell) 메모리, 부호화율, 부호화 변조 (Coded Modulation), 신호 할당 (Signal Mapping)

Description

고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치{Multi-level Cell Memory Device Using High Rate Code}
도 1은 종래기술에 따른 싱글 레벨 셀 (SLC) 메모리의 셀 문턱 전압을 도시한 도면이다.
도 2는 본 발명의 일례에 따른 멀티 레벨 셀 메모리 장치를 도시한 블록도이다.
도 3은 본 발명의 일례에 따라 2개의 4비트 MLC 메모리에 대한 신호 매핑을 설명하기 위한 도면이다.
도 4는 본 발명의 일례에 따른 MLC 메모리 셀 어레이를 도시한 도면이다.
도 5 및 도 6은 본 발명의 일례에 따른 신호 매핑부 및 신호 디매핑부의 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 일례에 따른 인코더를 도시한 블록도이다.
도 8은 본 발명의 일례에 따른 디코더를 도시한 블록도이다.
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 멀티 레벨 메모리 장치 및 상기 멀티 레벨 메모리 장치에 기록 및 판독하는 방법에 관한 것이다.
싱글 레벨 셀(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) 메모리를 이용한 저장 밀도의 향상이 용이하지 않았다.
따라서, 본 발명은 멀티 레벨 셀 메모리에 새로운 에러 정정 방법을 적용함으로써, 멀티 레벨 셀 메모리에 있어서, 하나의 메모리 셀에 저장하는 비트의 수를 안정적으로 증가시키는 것을 목적으로 한다.
또한, 본 발명은 고 부호화율(high code rate)의 인코딩을 통해 멀티 레벨 셀 메모리에 데이터를 기록할 수 있도록 함으로써, 하나의 멀티 레벨 셀에 저장되는 비트의 수를 증가시키면서도 이로 인하여 부가되는 인코딩 및 디코딩의 오버헤드를 최소로 하는 것을 목적으로 한다.
또한, 본 발명은 m비트 MLC 메모리에 대해 부화화율을 k/n으로 하려고 하는데, n이 m보다 큰 경우에도 MLC 메모리에 인코딩 및 디코딩을 사용할 수 있도록 하는 것을 목적으로 한다.
또한, 본 발명은 멀티 레벨 셀 메모리에 있어서, 하나의 메모리 셀에 4비트 이상을 저장할 수 있는 고 저장밀도의 멀티 레벨 셀 메모리를 제공하는 것을 목적으로 한다.
상기와 같은 본 발명의 목적을 달성하기 위한 본 발명의 멀티 레벨 셀 메모 리 장치는, a개의 m비트 MLC 메모리 셀 -a 및 m은 2 이상의 정수-, k 비트 데이터를 k/n의 부호화율로 인코딩하여 인코딩된 비트열을 생성하는 인코더(encoder) -k 및 n은 1 이상의 정수이고, n은 k보다 큼-, 및 상기 인코딩된 비트열에 따른 펄스를 상기 a개의 m비트 MLC 메모리 셀에 인가(apply)하여 상기 a개의 m비트 MLC 메모리 셀에 상기 인코딩된 비트열을 기록할 수 있도록 하는 신호 매핑부를 포함한다. 여기서, n은 상기 a 및 상기 m의 곱이다. 또한, n을 k+1로 함으로써, 최대 부호화율이 지원된다.
상기 멀티 레벨 셀 메모리 장치는, 판독 신호(read signal)의 인가에 응답하여 상기 a개의 m비트 MLC 메모리 셀의 각각으로부터 출력된 출력 펄스(output pulse)로부터 디매핑된 비트열(demapped bit stream)을 생성하는 신호 디매핑부(signal demapping module), 및 상기 디매핑된 비트열을 디코딩하여 k비트의 디코딩된 비트열(decoded bit stream)을 생성하는 디코더(decoder)를 더 포함할 수 있다.
상기 신호 디매핑부는 판독 신호(read signal)의 인가에 응답하여 상기 a개의 m비트 MLC 메모리 셀의 각각의 2m 개의 산포의 문턱 전압(threshold voltage)과 상기 출력 펄스의 각각을 비교하여 상기 출력 펄스의 각각에 대응한 상기 디매핑된 부분 비트열들을 생성하고, 상기 디매핑된 부분 비트열들을 결합하여 디매핑된 비트열을 생성한다.
상기 인코더는 상기 k 비트 데이터를 k/(k+r1)의 부호화율 부호로 인코딩하 여 외부 인코딩된 비트열(outer encoded bit stream)을 생성하는 외부 인코더(outer encoder), 및 상기 외부 인코딩된 비트열을 (k+r1)/n의 부호화율 부호로 인코딩하여 상기 인코딩된 비트열(inner encoded bit stream)을 생성하는 내부 인코더(inner encoder)를 포함할 수 있다. 이때, 상기 외부 인코더는 선형 블록 인코딩(linear block encoding)으로 인코딩하고, 상기 내부 인코더는 길쌈 부호 인코딩(convolutional code encoding)으로 인코딩할 수 있다. 이 경우, 상기 디코더도 상기 인코더에 대응하여, 상기 디매핑된 비트열에서 검출된(detected) 오류를 정정하여 내부 디코딩된 비트열을 생성하는 내부 디코더, 및 상기 내부 디코딩된 비트열에서 검출된 오류를 정정하여 상기 디코딩된 비트열을 생성하는 외부 디코더를 포함한다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일례에 따른 멀티 레벨 셀 메모리 장치를 도시한 블록도이다.
본 발명에 따른 멀티 레벨 셀 메모리 장치는 인코더(210), 신호 매핑부(220), MLC 메모리 셀 어레이(230), 신호 디매핑부(240), 및 디코더(250)를 포함한다.
본 발명에서 MLC 메모리 셀 어레이(MLC memory cell array)(230)는 a개의 m 비트 MLC 메모리 셀(261, 262, 263, 264)을 포함한다. a 및 m은 2 이상의 정수이다. m비트 MLC 메모리 셀(261, 262, 263, 264)의 각각은 m 비트의 데이터를 저장하여야 하기 때문에, 2m개의 산포(distribution)를 형성하여야 한다. 예를 들어, 도 4에는 2비트의 데이터를 저장하기 위한 22개의 산포(distribution)가 예시되어 있다. 그러나, 전압 윈도우(voltage window)는 제한되어 있기 때문에, m이 증가함에 따라 인접한 비트들 간의 문턱 전압(threshold)의 차이는 줄어들게 된다. 따라서, MLC 메모리 셀에의 기록 및 판독 시 오류 발생 가능성이 높아지는데, 본 발명은 인코딩 및 디코딩을 이용하여 오류를 검출 및 정정을 수행함으로써, 고 저장밀도의 멀티 레벨 셀 메모리을 가능하게 한다. MLC 메모리 셀(261, 262, 263, 264)의 각각과 연결된 감지 증폭기(sense amplifier)는 MLC 메모리 셀(261, 262, 263, 264)에 저장된 데이터에 관한 신호를 수신하여, 이를 감지 증폭한다. MLC 메모리 셀(261, 262, 263, 264)은 MLC 플래시 메모리의 메모리 셀일 수 있다.
인코더(210)는 k 비트 데이터를 k/n의 부호화율로 인코딩하여 인코딩된 비트열을 생성한다. 이때, k 및 n은 1 이상의 정수이고, n은 k보다 크다. 디코더(250)는, 상기 인코더(210)에 대응하여, MLC 메모리 어레이(230)로부터 판독된 디매핑된 비트열(245)에서 에러를 검출 및 정정함으로써, MLC 메모리 셀로부터 판독된 데이터의 정확도를 높이게 된다. 이때, 인코더는 k 비트의 데이터(205)에 r 비트의 오버헤드를 부가하여 k+r(=n) 비트의 인코딩된 비트열(215)을 생성한다. 따라서, 인코더(210)의 부호화율(code rate)은 k/(k+r), 즉 k/n이 된다. 상기 추 가된 r 비트는 k비트의 데이터를 메모리에 저장한 후 판독 시 발생하는 오류의 검출 및 정정에 사용하기 위하여 부가된 정보이다.
그런데, 부호화율이 낮으면, MLC 메모리 셀 어레이(230)에 실제로 저장되는 데이터의 양은 줄어들게 된다. 셀당 유효 비트수(effect bit/cell)는 하나의 MLC 메모리 셀이 저장하는 데이터 중 오류의 검출 및 정정에 사용되는 데이터를 제외한 실제 데이터의 비트수로, m비트 MLC 메모리 셀의 경우, m * R로 정의된다. 여기서 R은 부호화율이다. 따라서, 셀당 유효 비트수는 m * R = m * (k/n)이 되므로, 부호화율 R이 클수록 커지게 된다. 즉, 부호화율이 높으면 높을수록, MLC 메모리 셀 어레이(230)에 저장되는 데이터 중 실제 데이터의 비율이 높은 것이고, 따라서, 부호화율이 높으면 높을수록, MLC 메모리 셀 어레이(230)를 효율적으로 사용하는 것이 된다.
그런데, k 및 n은 1 이상의 정수이고, n은 k보다 크므로, k비트의 입력 데이터에 대하여 가능한 최대 부호화율은 n=k+1인 경우로, 최대 부호화율은 k/(k+1)이 된다. 예를 들어, 입력 데이터가 1비트이면 최대 부호화율은 1/2이고, 입력 데이터가 11비트이면 최대 부호화율은 11/12이고, 입력 데이터가 15비트이면 최대 부호화율은 15/16이다. 즉, 입력 데이터가 15비트일 때 부호화율이 15/20, 15/32, 15/64 등인 인코더를 선택할 수도 있지만, 모두 입력 데이터가 15 비트일 때의 최대 부호화율인 15/16보다는 작은 값을 가지게 된다. 따라서, 입력 데이터(205)가 15비트이면, 부호화율을 15/16으로 하는 것이 바람직하다.
그런데, 여기서 n이 커지면 커질수록 최대 부호화율의 값이 커지는 것을 알 수 있다. 즉, 최대 부호화율은 입력 데이터(205)의 비트수에 따라, 1/2, 2/3, 3/4, 4/5, ..., 15/16, .. 등이 되는데, n이 커질수록 최대 부호화율의 값이 커지게 된다. 앞서 살펴본 바와 같이 부호화율이 클수록 MLC 메모리 셀 어레이(230)를 효율적으로 사용하는 것이 된다. 따라서, 부호화율을 높이기 위한 인코더로는 n의 값이 큰 인코더를 선택하는 것이 바람직하다.
한편, m비트 MLC 메모리 셀은 하나의 셀에 m비트 데이터를 저장할 수 있는데, 부호화율 k/n을 높이는 경우, n이 m보다 큰 경우가 발생한다. 따라서, 부호화율과 관련된 n의 값을 m보다 크지 않은 값으로 사용할 수도 있지만, 본 발명은 높은 부호화율을 지원하기 위하여 복수 개의 m비트 MLC 메모리 셀을 사용하는 방법을 제공한다.
본 발명은 n이 m보다 큰 경우를 지원하기 위하여, a개의 m비트 MLC 메모리 셀(261, 262, 263, 264)을 포함한다. 그리고, n은 상기 a 및 m의 곱으로 선택한다. 예를 들어, 4비트 MLC 메모리 셀을 사용하는 경우, 4비트 MLC 메모리 셀을 2개 사용하고, 인코더(210)의 부호화율을 7/8로 하여 인코더(210)를 설계한다. 그러면, 입력되는 데이터(205)는 7비트 단위로 분할되어 인코더(210)에 의하여 부호화율 7/8로 인코딩된다. 인코딩된 비트열(215)은 8비트가 된다. 이 8비트의 인코딩된 비트열(215)을 신호매핑부(220)가 2개의 4비트 MLC 메모리 셀에 기록(write) 할 수 있도록 신호를 할당한다.
인코더(210)에 의하여 생성된 인코딩된 비트열(215)은 신호 매핑부(220)에 의하여 MLC 메모리 셀 어레이(230)에 저장되게 된다. 따라서, 인코딩된 비트 열(215)은 MLC 메모리 셀 어레이(230)에 저장되는 최종 디지털 데이터이다. 인코딩된 비트열(215)은 n 비트로 구성되는데, 그 중 일부인 k 비트가 k 비트의 비트열(205)의 값을 그대로 유지하고 있는 경우, 인코딩된 비트열(215)은 시스템적 코드(systematic code)로 불린다. 만일, n 비트의 인코딩된 비트열(215) 중 어느 일부도 k 비트의 비트열(205)의 값을 그대로 유지하고 있지 않은 경우, 인코딩된 비트열(215)은 비시스템적 코드(nonsystematic code)로 불린다. 본 발명은 인코딩된 비트열(215)을 시스템적 코드(systematic code) 또는 비시스템적 코드(nonsystematic code)로 생성할 수 있다. 본 발명에서 인코딩된 비트열(215)을 시스템적 코드(systematic code)로 생성하는 경우, MLC 메모리 셀 어레이(230)에 저장되는 데이터도 원래의 k 비트의 비트열(205)의 값을 그대로 유지한 채 저장되게 되는 장점이 있다.
신호 매핑부(signal mapping module)(220)는 인코딩된 비트열(215)에 따른 펄스를 상기 a개의 m비트 MLC 메모리 셀(261, 262, 263, 264)에 인가(apply)하여 상기 a개의 m비트 MLC 메모리 셀(261, 262, 263, 264)에 데이터를 기록할 수 있도록 신호를 할당한다. 보다 구체적으로, 신호매핑부(220)는, 상기 인코딩된 비트열(220)에 따라 상기 a개의 m비트 MLC 메모리 셀(261, 262, 263, 264)의 각각에 대해 결정된 펄스(221, 222, 223, 224)의 각각을 상기 a개의 m비트 MLC 메모리 셀(261, 262, 263, 264)의 각각에 인가한다. 상기 펄스의 각각은 변조 (modulation)된 2m 개의 레벨 중 하나이다.
본 발명의 일실시예에 따르면, 인코더(210) 및 신호 매핑부(220)는 결합되어 부호화 변조(coded modulation) 방식으로 구현될 수 있다.
신호 디매핑부(signal demapping module)(240)는 판독 신호(read signal)의 인가에 응답하여 a개의 m비트 MLC 메모리 셀의 각각(261, 262, 263, 264)으로부터 출력된 출력 펄스(output pulse)(271, 272, 273, 274)로부터 디매핑된 비트열(demapped bit stream)(245)을 생성한다.
신호 디매핑부(signal demapping module)(240)는 판독 신호(read signal)의 인가에 응답하여 a개의 m비트 MLC 메모리 셀의 각각(261, 262, 263, 264)으로부터 출력된 상기 출력 펄스(output pulse)의 각각(271, 272, 273, 274)으로부터 디매핑된 부분 비트열들(demapped part bit streams)을 결정한다. 신호 디매핑부(signal demapping module)(240)는 a개의 m비트 MLC 메모리 셀의 각각(261, 262, 263, 264)의 2m 개의 산포의 문턱 전압(threshold voltage)과 상기 출력 펄스의 각각(271, 272, 273, 274)을 비교하여 상기 출력 펄스의 각각(271, 272, 273, 274)에 대응한 상기 디매핑된 부분 비트열들을 생성한다. 그 다음, 신호 디매핑부(240)는 상기 디매핑된 부분 비트열들을 결합하여 디매핑된 비트열(245)을 생성한다.
도 3 및 도 6을 참조하여, 본 발명의 일례에 따른 신호 디매핑부(240)의 동작을 설명한다. 2개의 4비트 MLC 메모리 셀에 대해 부호화율은 7/8로 데이터가 저장된 경우, 상기 2개의 4비트 MLC 메모리 셀에 판독 신호가 인가되면, 상기 MLC 메모리 셀의 각각으로부터 출력 펄스가 출력된다. 제1 MLC 메모리 셀로부터 출력된 출력 펄스가 -2.5 볼트이고, 제2 MLC 메모리 셀로부터 출력된 출력 펄스가 2.5볼트라고 가정한다. 그러면, 신호 매핑이 도 6과 같다면, 신호 디매핑부(240)는 제1 MLC 메모리 셀로부터 출력된 출력 펄스 -2.5 볼트를 24 개의 산포의 문턱 전압(threshold voltage)과 비교하여, 하위 4비트를 "1111"로 결정한다. 그리고, 신호 디매핑부(240)는 제2 MLC 메모리 셀로부터 출력된 출력 펄스 2.5볼트를 24 개의 산포의 문턱 전압(threshold voltage)과 비교하여, 상위 4비트를 "0000"으로 결정한다. 상기 "1111" 및 "0000"은 디매핑된 부분 비트열이다. 이는 도 3에서 도면부호(310)에 대응한다. 그 다음, 신호 디매핑부(240)는 상기 디매핑된 부분 비트열들을 결합하여 디매핑된 비트열(245)을 생성한다.
디코더(decoder)(250)는 n비트의 디매핑된 비트열(245)을 디코딩하여 k비트의 디코딩된 비트열(decoded bit stream)(255)을 생성한다.
디코딩 방법에 따라 오류의 검출 및 오류의 정정 능력에 차이가 있는 경우가 있다. 예를 들어, 오류의 검출은 4 비트까지 가능하지만, 오류의 정정은 3비트까지만 가능한 경우이다. 이 경우, 오류가 4비트 발생한 경우, 디코더(250)는 오류가 발생한 것은 검출할 수 있지만, 오류의 정정은 불가능하다. 이 경우, 디코더(250)는 디코딩된 비트열(outer decoded bit stream)(255)을 수신할 객체(예를 들어, 운영 체제, 메모리 관리 프로그램 등)에게 오류로 검출되었으나 정정되지 않은 오류에 대하여 보고할 수 있다. 그러면, 상기 객체는 이 보고에 기초하여 추가적인 동작을 수행함으로써, 메모리 사용을 보다 효율적으로 할 수 있게 된다.
도 3을 참조하여, 본 발명의 일례에 따라 2개의 4비트 MLC 메모리 셀에 대한 신호 매핑을 설명한다. 도 3의 예에서, 인코더(210)의 부호화율은 7/8로 가정한다. 그러면, 입력되는 데이터(205)는 7비트 단위로 분할되어 인코더(210)에 의하여 부호화율 7/8로 인코딩된다. 인코딩된 비트열(215)은 8비트가 된다. 따라서, 신호매핑부(220)는 8비트의 인코딩된 비트열(215)을 4비트 MLC 메모리 셀에 기록하여야 한다. 본 발명에서는 2개의 4비트 MLC 메모리 셀을 사용한다. 4비트 MLC 메모리 셀의 각각은 24 레벨, 즉 16개의 레벨만을 지원한다. 신호매핑부(220)는 8비트의 인코딩된 비트열(215)을 상위 4비트 및 하위 4비트로 나누고, 하위 4비트에 따라 결정된 펄스를 제1 MLC 메모리 셀에 인가하고, 상위 4비트에 따라 결정된 펄스를 제2 MLC 메모리 셀에 인가한다. 예를 들어, 인코딩된 비트열(215)이 "00001111"이면, 하위 4비트인 "1111"에 따라 결정된 16 레벨의 펄스를 제1 MLC 메모리 셀에 인가하고, 상위 4비트인 "0000"에 따라 결정된 1 레벨의 펄스를 제2 MLC 메모리 셀에 인가한다. 도면부호(310)은 인코딩된 비트열(215)이 "00001111"인 경우, 제1 MLC 메모리 셀 및 제2 MLC 메모리 셀에 인가되는 펄스의 레벨을 표시한 것이다. 마찬가지로, 인코딩된 비트열(215)이 "11110010"이면, 하위 4비트인 "0010"에 따라 결정된 3 레벨의 펄스를 제1 MLC 메모리 셀에 인가하고, 상위 4비트인 "1111"에 따라 결정된 16 레벨의 펄스를 제2 MLC 메모리 셀에 인가한다. 도면부호(320)은 인코딩된 비트열(215)이 "11110010"인 경우, 제1 MLC 메모리 셀 및 제2 MLC 메모리 셀에 인가되는 펄스의 레벨을 표시한 것이다.
도 4는 본 발명의 일례에 따른 MLC 메모리 셀 어레이를 도시한 도면이다. 도 4에서 B/L0 내지 B/L511은 비트 라인들을 나타내고, W/L0 내지 W/L1023은 워드라인들을 나타낸다. S/L은 소스 라인을 나타내고, MC는 메모리 셀들을 나타낸다. 도 4에 도시된 메모리 셀 어레이의 메모리 셀은 하나의 메모리 셀에 2비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC: multi-level cell) 메모리 셀이다.
도 5 및 도 6은 본 발명의 일례에 따른 신호 매핑부 및 신호 디매핑부의 동작을 설명하기 위한 도면이다.
도 5 및 도 6에서 알 수 있는 바와 같이, 하나의 메모리 셀에 대한 전압 윈도우는 제한되어 있다. 도 5 및 도 6의 경우 MLC 메모리 셀의 전압 윈도우가 -2.5볼트(마이너스 2.5 볼트)부터 4볼트까지이다. 이렇게 제한된 전압 윈도우 내에서 도 5는 하나의 MLC 메모리 셀에 2개의 비트를 저장하여야 하므로, 4개의 산포를 형성하여야 하고, 도 6은 하나의 MLC 메모리 셀에 4개의 비트를 저장하여야 하므로, 16개의 산포를 형성하여야 한다. 이와 같이, 하나의 메모리 셀에 m개의 비트를 저장하려면, 2m개의 산포(distribution)를 형성하여야 하는데, 전압 윈도우(voltage window)는 제한되어 있기 때문에, m이 증가함에 따라 인접한 비트들 간의 문턱 전압(threshold)의 차이는 줄어들게 된다. 따라서, MLC 메모리 셀에의 기록 및 판독 시 오류 발생 가능성이 높아지는데, 본 발명은 고 부호화율을 갖는 오류정정부호를 이용하여 오류를 검출 및 정정함으로써, 하나의 메모리 셀에 4비트 이상을 저장하는 고밀도 MLC 셀 메모리 장치를 가능하게 할 뿐 아니라, 고 부호화율을 가능하게 함으로써, 오류의 검출 및 정정에 수반되는 오버헤드를 최소로 한다.
도 5를 참조하면, 신호 디매핑부(250)는 MLC 메모리 셀(261)로부터 얻어진 전압이 0.5-1.0볼트이면 논리 "11", MLC 메모리 셀(261)로부터 얻어진 전압이 1.5-2.0볼트이면 논리 "10", MLC 메모리 셀(610)로부터 얻어진 전압이 2.5-3.0볼트이면 논리 "01", MLC 메모리 셀(261)로부터 얻어진 전압이 3.5-4.0볼트이면 논리 "00"으로 디매핑된 부분 비트열을 결정한다. MLC 메모리 셀(261)에 저장된 데이터는 독출(read) 동작 시 셀 전류 또는 셀 전압의 차이에 의하여 구분된다.
마찬가지로, 신호 매핑부(220)는 인코딩된 비트열(215)에 기초하여 MLC 메모리 셀(261)에 저장하여야 하는 논리가 "11"이면 MLC 메모리 셀(261)이 저장하는 전압 레벨이 0.5-1.0볼트가 되도록 프로그램 펄스를 MLC 메모리 셀(261)에 인가(apply)한다.
MLC 메모리 셀(261)이 MLC 플래시 메모리 셀인 경우, 논리 "01"을 MLC 메모리 셀(261)에 기록하는 경우를 설명한다. 신호 매핑부(220)는 기록할 MLC 메모리 셀(261)을 소거시킨 상태에서 워드 라인 전압을 조금씩 증가시키면서 MLC 메모리 셀(261)의 전압을 양의 방향으로 조금씩 증가시키고, 메모리 셀의 문턱 전압(threshold voltage)가 2.5-3.0 볼트에 도달하였는지 검증(verify)한다. 따라서, 논리 "01"을 MLC 메모리 셀(261)에 기록하기 위하여, MLC 메모리 셀(261)은 논리 "11" 및 논리 "10"의 상태를 순차적으로 거쳐 논리 "01"의 상태가 된다.
도 7 및 도 8은 본 발명의 일례에 따라 연접 부호화를 사용하는 인코더 및 디코더를 도시한 블록도이다.
도 7에 도시된 인코더는 k비트의 데이터를 인코딩하여 n 비트의 인코딩된 비트열을 생성할 때, 외부 부호화(outer coding) 및 내부 부호화(inner coding)의 2 단계를 연결 접속한 연접 부호화(concatenated coding)를 사용한다. 외부 부호화에는 블록 부호화(block coding)가 사용될 수 있고, 내부 부호화에는 길쌈 부호화(convolutional coding)가 사용될 수 있다. 블록 부호화는 데이터를 일정한 블록 단위로 부호화(encoding) 및 복호화(decoding)하는 방법이다. 길쌈 부호화는 이전 데이터와 현재 데이터를 이용하여 부호화하는 방법이다. 길쌈 부호화는 부호화에 이전 데이터를 이용하기 때문에, 이전 데이터를 저장할 저장장치를 필요로 한다. 블록 부호화는 군집 오류(burst error)의 검출 및 정정에 강하고, 길쌈 부호화는 랜덤 오류(random error)의 검출 및 정정에 강하다. 따라서, 본 발명에서 MLC 메모리 장치에 데이터를 기록할 때, 외부 부호화로 블록 부호화를 사용하고, 내부 부호화로 길쌈 부호화를 사용함으로써, 본 발명은 군집 오류 및 랜덤 오류 모두에 강한 높은 성능의 오류 정정 성능을 갖게 된다.
외부 인코더(outer encoder)(710)는 멀티 레벨 셀(multi level cell) 메모리 장치에 저장할 k비트의 소스 데이터(705)를 수신하여, 상기 소스 데이터(705)를 k/(k+r1)의 부호화율로 외부 인코딩된 비트열(outer encoded bit stream)(715)을 생성한다. 이때 인코딩 방법으로는 선형 블록 인코딩(linear block encoding)이 사용될 수 있다.
선형 블록 인코딩에는 Hamming 코딩, BCH 코딩, Reed-Solomon(RS) 코딩, Golay 코딩 등의 방법이 있다. 선형 블록 인코딩은 먼저 소스 데이터를 k 비트 단 위로 블록화한다. 즉, 소스 데이터를 k 비트 단위로 분할한다. 외부 인코더(outer encoder)(710)는 이렇게 블록화된 k 비트의 비트열(705)에 r1 비트의 오버헤드를 부가하여 k+r1 비트의 외부 인코딩된 비트열(715)을 생성한다. 따라서, 외부 인코더(710)의 부호화율(code rate)은 k/(k+r1)이 된다. 상기 추가된 r1 비트는 패러티 비트(parity bit)로 k 비트의 비트열(705)에 부가될 수 있다. 이 경우, MLC 메모리로부터 데이터를 판독할 때, 내부 디코더(810)는 상기 r1 비트를 참조하여 k 비트의 데이터에 대한 오류 검출 및 정정을 수행한다.
내부 인코더(inner encoder)(720)는 외부 인코딩된 비트열(715)을 (k+r1)/n의 부호화율로 인코딩하여 내부 인코딩된 비트열(inner encoded bit stream)(725)을 생성한다. 이때, 인코딩 방법으로는 길쌈 부호 인코딩(convolutional code encoding)이 사용될 수 있다.
길쌈 부호 인코딩(convolutional code encoding)은 현재의 데이터와 이전의 데이터 간의 상호 연관성(convolutional relation)을 이용하여 오류를 검출 및 정정하는 인코딩이다. 길쌈 부호 인코딩은 랜덤 오류(random error)의 검출 및 정정에 강하다. 내부 인코더(720)는 k+r1 비트의 외부 인코딩된 비트열(715)을 인코딩하여 k+r1+r2 비트의 인코딩된 비트열(725)을 생성한다. 따라서, 내부 인코더(720)에 의하여 추가되는 오버헤드는 r2 비트이고, 내부 인코더(720)의 부호화율(code rate)은 (k+r1)/(k+r1+r2)가 된다. k+r1+r2를 n으로 하면, 외부 인코더(710) 및 내부 인코더(720) 전체를 통한 부호화율은 k/n이 된다. 여기서, n-k는 k비트 데이터를 MLC 메모리 셀에 저장할 때 발생하는 오류의 검출 및 정정을 위하여 부가되는 비트 수가 되므로, n-k는 최소화될수록 바람직하다. 따라서, n이 k+1이면, 부가되는 비트는 1비트이고, 부호화율은 k/(k+1)로 최대가 된다. 본 발명에서는 m비트 메모리 셀 a개를 사용하고, n을 a 및 m의 곱으로 설정하여, 고부화율로 인코딩을 가능하게 함으로써, k비트 데이터를 MLC 메모리 셀에 저장할 때 발생하는 오류의 검출 및 정정을 위하여 부가되는 비트 수를 최소로 한다.
도 8은 본 발명의 일례에 따라 연접 부호화를 사용하는 디코더를 도시한 블록도이다.
내부 디코더(inner decoder)(810)는 디매핑된 비트열(805)을 제2 디코딩 방법으로 디코딩하여 내부 디코딩된 비트열(inner decoded bit stream)(815)을 생성한다. 상기 제2 디코딩 방법으로는 비터비 (Viterbi) 디코딩이 사용될 수 있다. 내부 디코더(810)는 k+r1+r2(=n) 비트의 디매핑된 비트열(805)을 디코딩하여 k+r1 비트의 내부 디코딩된 비트열(815)을 생성한다. 내부 디코더는 제2 디코딩 방법을 이용하여 디매핑된 비트열(825)에 포함된 오류를 검출하고, 검출된 오류를 정정한다. 제2 디코딩 방법으로 비터비 (Viterbi) 디코딩을 사용하는 경우, 랜덤 오류(random error)의 검출 및 정정에 유리하다.
외부 디코더(outer decoder)(820)는 k+r1 비트의 내부 디코딩된 비트열(815)을 제1 디코딩 방법으로 디코딩하여 k비트의 디코딩된 비트열(outer decoded bit stream)(825)을 생성한다. 외부 디코더(820)는 제1 디코딩 방법을 이용하여 내부 디코딩된 비트열(815)에 포함된 오류를 검출하고, 검출된 오류를 정정한다. 제1 디코딩 방법은 제1 인코딩 방법에 대응하는 디코딩 방법이 사용된다. 제1 인코딩 방법으로 Hamming 코딩, BCH 코딩, Reed-Solomon(RS) 코딩, Golay 코딩 등의 선형 블록 인코딩이 사용된 경우, 제1 디코딩 방법도 이에 대응한 선형 블록 디코딩이 사용된다. 예를 들어, 제1 인코딩 방법으로 RS 코딩에 따른 인코딩을 사용한 경우, 제1 디코딩 방법도 RS 코딩에 따른 디코딩을 사용한다.
이와 같이, 내부 디코더(810)는 디매핑된 비트열(805)에서 검출된(detected) 오류를 정정하여 내부 디코딩된 비트열(815)을 생성하고, 외부 디코더(820)는 내부 디코딩된 비트열(815)에서 검출된 오류를 정정하여 디코딩된 비트열(825)을 생성하는 2단계의 에러 검출 및 정정을 수행한다. 따라서, 본 발명에 따르면, MLC 메모리의 판독 시 독출된 신호를 보다 정확하게 판독할 수 있게 되어, 고밀도의 MLC 메모리를 구현할 수 있게 된다.
또한 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로 그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
예를 들어, 본 발명에서 설명된 인코더(210), 신호 매핑부(220), 신호 디매핑부(240), 디코더(250), 외부 인코더(710), 내부 인코더(720), 내부 디코더(810), 및 외부 디코더(820) 중 일부가 컴퓨터 프로그램으로 구현될 수 있다. 이 경우에 상기 컴퓨터 프로그램도 본 발명에 포함된다.
이와 같이, 본 발명에 따르면, 멀티 레벨 셀 메모리에 새로운 에러 정정 방법을 적용함으로써, 하나의 메모리 셀에 저장하는 비트의 수를 안정적으로 증가시킬 수 있다. 특히, 종래에는 하나의 메모리 셀에 4비트 이상을 저장할 수 있는 효율적인 오류정정 방식이 사용되는 고 저장밀도의 멀티 레벨 셀 메모리는 제안되지 아니하였으나, 본 발명을 이용하면, 하나의 메모리 셀에 4 비트 이상을 효율적으로 저장할 수 있는 멀티 레벨 셀 메모리가 가능하다.
본 발명을 적용한 멀티 레벨 셀 메모리는 추가적인 회로가 필요한 오버헤드가 있으나, 이러한 오버헤드보다 본 발명을 적용함으로써 얻어지는 메모리의 데이터 용량의 증가가 더 크다.
또한, 본 발명에 따르면, 고 부호화율(high code rate)의 인코딩을 통해 멀티 레벨 셀 메모리에 데이터를 기록할 수 있도록 함으로써, 하나의 멀티 레벨 셀에 저장되는 비트의 수를 증가시키면서도 이로 인하여 부가되는 인코딩 및 디코딩의 오버헤드를 최소로 할 수 있다.
또한 본 발명에 따르면, m비트 MLC 메모리에 대해 부화화율을 k/n으로 하려고 하는데, n이 m보다 큰 경우에도 MLC 메모리에 인코딩 및 디코딩을 사용할 수 있다.
멀티 레벨 셀 메모리에서 하나의 비트에 저장하는 비트의 수를 증가시키면, 인접한 비트들 간의 문턱 전압(threshold)의 차이는 줄어들게 되고, 이에 따라 판독 실패율이 증가하지만, 본 발명을 적용하면, 이러한 문제가 개선된다.
또한 본 발명에 따르면, 멀티 레벨 셀 메모리에서 판독된 신호에 포함된 오류가 정정됨으로써, 플래시 메모리의 신뢰성, 양산성 등이 높아진다.
또한, 본 발명에 따르면, 멀티 레벨 셀 메모리에 있어서 랜덤 에러 및 버스트 에러 모두에 강한 에러 정정 방법이 제공된다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (15)

  1. 데이터를 저장하는 멀티 레벨 셀 메모리 장치에 있어서,
    a개의 m비트 MLC 메모리 셀 -a 및 m은 2 이상의 정수-;
    k 비트 데이터를 k/n의 부호화율로 인코딩하여 인코딩된 비트열을 생성하는 인코더 -k 및 n은 1 이상의 정수이고, n은 k보다 큼-; 및
    상기 인코딩된 비트열에 따른 펄스를 상기 a개의 m비트 MLC 메모리 셀에 인가하여 상기 a개의 m비트 MLC 메모리 셀에 상기 인코딩된 비트열을 기록할 수 있도록 하는 신호 매핑부
    를 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  2. 제1항에 있어서,
    상기 n은 상기 a 및 상기 m의 곱인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  3. 제2항에 있어서,
    상기 n은 k+1인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  4. 제1항에 있어서, 상기 인코더는,
    상기 k 비트 데이터를 k/(k+r1)의 부호화율로 인코딩하여 외부 인코딩된 비트열을 생성하는 외부 인코더 - 상기 r1은 오버헤드의 비트 수 - ; 및
    상기 외부 인코딩된 비트열을 (k+r1)/n의 부호화율로 인코딩하여 상기 인코딩된 비트열을 생성하는 내부 인코더
    를 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  5. 제4항에 있어서,
    상기 외부 인코더는 선형 블록 인코딩으로 인코딩하고, 상기 내부 인코더는 길쌈 부호 인코딩으로 인코딩하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  6. 제1항에 있어서, 상기 신호매핑부는,
    상기 인코딩된 비트열에 따라 상기 a개의 m비트 MLC 메모리 셀의 각각에 대해 결정된 펄스의 각각을 상기 a개의 m비트 MLC 메모리 셀의 각각에 인가하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  7. 제6항에 있어서, 상기 신호매핑부는,
    상기 펄스의 각각은 2m PAM(pulse amplitude modulation)에 의하여 생성 가능한 2m 개의 레벨 중 하나인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  8. 제1항에 있어서,
    상기 인코더 및 상기 신호매핑부는 결합되어 부호화 변조(coded modulation)가 사용되는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  9. 제1항에 있어서,
    판독 신호의 인가에 응답하여 상기 a개의 m비트 MLC 메모리 셀의 각각으로부터 출력된 출력 펄스로부터 디매핑된 비트열을 생성하는 신호 디매핑부
    를 더 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  10. 제9항에 있어서, 상기 신호 디매핑부는,
    상기 판독 신호의 인가에 응답하여 상기 a개의 m비트 MLC 메모리 셀의 각각으로부터 출력된 상기 출력 펄스의 각각으로부터 디매핑된 부분 비트열들을 결정하고, 상기 디매핑된 부분 비트열들을 결합하여 상기 디매핑된 비트열을 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  11. 제10항에 있어서, 상기 신호 디매핑부는,
    상기 a개의 m비트 MLC 메모리 셀의 각각의 2m 개의 산포의 문턱 전압과 상기 출력 펄스의 각각을 비교하여 상기 출력 펄스의 각각에 대응한 상기 디매핑된 부분 비트열들을 생성하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  12. 제9항에 있어서,
    상기 디매핑된 비트열을 디코딩하여 k비트의 디코딩된 비트열을 생성하는 디코더
    를 더 포함하는 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
  13. 제12항에 있어서, 상기 디코더는,
    상기 디매핑된 비트열을 비터비 디코딩(Viterbi decoding)하여 상기 디코딩된 비트열을 생성하는 것을 특징으로 하는 멀티 비트 셀 메모리 장치.
  14. 제12항에 있어서, 상기 디코더는,
    상기 디매핑된 비트열에서 검출된 오류를 정정하여 내부 디코딩된 비트열을 생성하는 내부 디코더; 및
    상기 내부 디코딩된 비트열에서 검출된 오류를 정정하여 상기 디코딩된 비트열을 생성하는 외부 디코더
    를 포함하는 것을 특징으로 하는 멀티 비트 셀 메모리 장치.
  15. 제1항에 있어서,
    상기 a개의 m비트 MLC 메모리 셀의 각각은 MLC 플래시 메모리의 메모리 셀인 것을 특징으로 하는 멀티 레벨 셀 메모리 장치.
KR1020060134049A 2006-12-26 2006-12-26 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치 KR100822030B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060134049A KR100822030B1 (ko) 2006-12-26 2006-12-26 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치
US11/802,656 US8499215B2 (en) 2006-12-26 2007-05-24 Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
JP2009543914A JP5091253B2 (ja) 2006-12-26 2007-07-05 マルチレベルセルメモリ装置およびこのメモリ装置にデータを記録および読み取る方法
PCT/KR2007/003260 WO2008078866A1 (en) 2006-12-26 2007-07-05 Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
US13/936,857 US20130294158A1 (en) 2006-12-26 2013-07-08 Multi-level cell memory devices and methods of storing data in and reading data from the memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060134049A KR100822030B1 (ko) 2006-12-26 2006-12-26 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치

Publications (1)

Publication Number Publication Date
KR100822030B1 true KR100822030B1 (ko) 2008-04-15

Family

ID=39534790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060134049A KR100822030B1 (ko) 2006-12-26 2006-12-26 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치

Country Status (4)

Country Link
US (2) US8499215B2 (ko)
JP (1) JP5091253B2 (ko)
KR (1) KR100822030B1 (ko)
WO (1) WO2008078866A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411679B2 (en) 2012-05-22 2016-08-09 Samsung Electronics Co., Ltd. Code modulation encoder and decoder, memory controller including them, and flash memory system
KR101824227B1 (ko) 2009-08-07 2018-02-05 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
WO2010077408A1 (en) * 2008-12-31 2010-07-08 Rambus Inc. Pattern-sensitive coding of data for storage in multi-level memory cells
TWI415130B (zh) * 2009-06-02 2013-11-11 Silicon Motion Inc 快閃記憶體之控制器以及於快閃記憶體存取資料的方法
US8935589B2 (en) * 2009-06-02 2015-01-13 Silicon Motion, Inc. Controller and data access method for flash memories
US11336303B2 (en) 2010-06-04 2022-05-17 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US8615703B2 (en) 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
WO2012020278A1 (en) 2010-08-13 2012-02-16 Sandisk Il Ltd. Data coding using divisions of memory cell states
US8711617B2 (en) * 2011-06-03 2014-04-29 Micron Technology, Inc. Data modulation for groups of memory cells
US8788743B2 (en) 2012-04-11 2014-07-22 Micron Technology, Inc. Mapping between program states and data patterns
JP2015204126A (ja) * 2014-04-16 2015-11-16 株式会社東芝 半導体記憶装置
US9613664B2 (en) 2015-01-20 2017-04-04 Samsung Electronics Co., Ltd. Method of operating memory device including multi-level memory cells
US10204006B2 (en) * 2015-10-28 2019-02-12 Avago Technologies International Sales Pte. Limited Systems and methods for side data based soft data flash memory access
US10108489B2 (en) * 2015-10-28 2018-10-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for efficient soft data based flash memory data recovery
US10198316B2 (en) * 2015-10-28 2019-02-05 Avago Technologies International Sales Pte. Limited Systems and methods for efficient flash memory access
US10817493B2 (en) * 2017-07-07 2020-10-27 Raytheon Company Data interpolation
US11211119B1 (en) * 2020-06-11 2021-12-28 Western Digital Technologies, Inc. QLC programming method with staging of fine data
US11568938B2 (en) 2020-11-03 2023-01-31 Western Digital Technologies, Inc. QLC data programming
US11861195B2 (en) 2021-03-15 2024-01-02 Western Digital Technologies, Inc. TLC data programming with hybrid parity

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483742B1 (en) 1994-06-02 2002-11-19 Intel Corporation Bit map addressing schemes for flash memory
US6870774B2 (en) 2002-12-10 2005-03-22 Micron, Technology, Inc. Flash memory architecture for optimizing performance of memory having multi-level memory cells

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222989A (ja) 1996-09-18 1998-08-21 Nippon Steel Corp 多値半導体記憶装置及びその書き込み方法と読み出し方法並びに記憶媒体
US6212654B1 (en) * 1997-07-22 2001-04-03 Lucent Technologies Inc. Coded modulation for digital storage in analog memory devices
JPH1145595A (ja) * 1997-07-24 1999-02-16 Nec Corp 多値セル用誤り訂正回路
JPH11143787A (ja) 1997-11-06 1999-05-28 Hitachi Ltd 記録再生装置
US6279133B1 (en) * 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
US7082056B2 (en) * 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
KR100370014B1 (ko) 2000-05-16 2003-01-29 엘지전자 주식회사 공기조화기의 실외기의 소음 저감구조
IT1321049B1 (it) * 2000-11-07 2003-12-30 St Microelectronics Srl Metodo di costruzione di un codice a controllo dell'errore polivalenteper celle di memoria multilivello funzionanti a un numero variabile di
US6469931B1 (en) 2001-01-04 2002-10-22 M-Systems Flash Disk Pioneers Ltd. Method for increasing information content in a computer memory
US6757193B2 (en) * 2001-05-31 2004-06-29 Macronix International Co., Ltd. Coding method of multi-level memory cell
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
JP3398146B1 (ja) * 2002-01-23 2003-04-21 株式会社椿本チエイン 伝動媒体用摺接ガイド
US7231585B2 (en) * 2002-12-11 2007-06-12 Nvidia Corporation Error correction for flash memory
US7330370B2 (en) * 2004-07-20 2008-02-12 Unity Semiconductor Corporation Enhanced functionality in a two-terminal memory array
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7844879B2 (en) * 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US7533328B2 (en) * 2006-07-04 2009-05-12 Sandisk Il, Ltd. Method of error correction in a multi-bit-per-cell flash memory
US7805663B2 (en) * 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483742B1 (en) 1994-06-02 2002-11-19 Intel Corporation Bit map addressing schemes for flash memory
US6870774B2 (en) 2002-12-10 2005-03-22 Micron, Technology, Inc. Flash memory architecture for optimizing performance of memory having multi-level memory cells

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101824227B1 (ko) 2009-08-07 2018-02-05 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
US9411679B2 (en) 2012-05-22 2016-08-09 Samsung Electronics Co., Ltd. Code modulation encoder and decoder, memory controller including them, and flash memory system

Also Published As

Publication number Publication date
US8499215B2 (en) 2013-07-30
JP5091253B2 (ja) 2012-12-05
US20130294158A1 (en) 2013-11-07
WO2008078866A1 (en) 2008-07-03
US20080151621A1 (en) 2008-06-26
JP2010515145A (ja) 2010-05-06

Similar Documents

Publication Publication Date Title
KR100822030B1 (ko) 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치
KR100785925B1 (ko) Tcm을 이용한 멀티 레벨 셀 메모리 장치
KR100766042B1 (ko) 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
US8239730B2 (en) Non-volatile semiconductor memory device
KR100987632B1 (ko) Mbc 플래시 메모리에서의 에러 보정 방법
JP3999822B2 (ja) 記憶システム
KR102059209B1 (ko) 비휘발성 메모리의 차동 벡터 저장
US8797795B2 (en) Methods and apparatus for intercell interference mitigation using modulation coding
US8112689B2 (en) ECC controller for use in flash memory device and memory system including the same
US9015554B2 (en) Management of non-valid decision patterns of a soft read retry operation
US8276046B2 (en) Apparatus for determining number of bits to be stored in memory cell
US8560919B2 (en) System and method of interleaving data according to an adjustable parameter
JP2011197957A (ja) 誤り訂正符号復号装置及び誤り訂正符号復号方法
US8699269B1 (en) Systems and methods for improving error distributions in multi-level cell memory systems
KR20110028228A (ko) 다중레벨 플래시 메모리의 에러정정
KR20080052288A (ko) 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
KR101206820B1 (ko) 멀티 레벨 셀 메모리를 위한 양자화기 및 이를 포함하는 메모리 장치
JP3866674B2 (ja) 記憶システム
Kiran et al. Improved Error Correction Capability in Flash Memory using Input/Output Pins

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
FPAY Annual fee payment
FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 12