KR20130041603A - 비휘발성 메모리 장치의 데이터 저장 방법 - Google Patents

비휘발성 메모리 장치의 데이터 저장 방법 Download PDF

Info

Publication number
KR20130041603A
KR20130041603A KR1020110105971A KR20110105971A KR20130041603A KR 20130041603 A KR20130041603 A KR 20130041603A KR 1020110105971 A KR1020110105971 A KR 1020110105971A KR 20110105971 A KR20110105971 A KR 20110105971A KR 20130041603 A KR20130041603 A KR 20130041603A
Authority
KR
South Korea
Prior art keywords
bit
ordering
page
data
reads
Prior art date
Application number
KR1020110105971A
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 KR1020110105971A priority Critical patent/KR20130041603A/ko
Priority to US13/608,004 priority patent/US20130097364A1/en
Publication of KR20130041603A publication Critical patent/KR20130041603A/ko

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing 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/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data

Abstract

비휘발성 메모리 장치의 데이터 저장 방법이 개시된다. 본 발명의 실시예에 따른 비휘발성 메모리 장치의 데이터 저장 방법은, 복수의 n-비트 멀티 레벨 셀(multi level cell)들을 제공하는 단계, 및 상기 n-비트 멀티 레벨 셀들 각각을, 소정의 비트 오더링(ordering)에 따라 n-비트 데이터로 프로그래밍하는 단계를 포함하고, 상기 비트 오더링은, 상기 n-비트 멀티 레벨 셀들의 소거 상태(erased state)에 적어도 하나의 비트 "0"을 할당하고, 상기 n-비트 멀티 레벨 셀들에 저장되는 상기 n-비트 데이터의 독출 시, 상기 n-비트 데이터의 최하위 비트(Least Significant Bit; LSB) 내지 최상위 비트(Most Significant Bit; MSB)가 각각 포함되는 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시킨다.

Description

비휘발성 메모리 장치의 데이터 저장 방법{Data storing method of non-volatile memory device}
본 발명은 비휘발성 메모리 장치의 n-비트 멀티 레벨 셀(multi level cell)들에 데이터를 저장하는 방법에 관한 것이다.
비휘발성 메모리 장치의 대용량화 및 고성능화 요구로 인하여 하나의 셀에 멀티 비트 데이터가 저장되는 멀티 레벨 셀의 사용이 증가되고 있다. 멀티 레벨 셀에 n-비트 데이터(n은 3이상의 정수)가 저장되는 경우, 각 멀티 레벨 셀의 문턱전압의 범위는 2^n개의 범위로 분할된다. 상기 n-비트 데이터가 저장되는 멀티 레벨 셀은 상기 2^n개의 범위에 대응되는 상태들 중 어느 하나에 해당하게 된다. 상기 상태들에는 논리 값(logical value)들이 할당된다. 상기 논리 값들은 n개의 비트로 구성되며, 각 비트는 비트 "0" 또는 비트 "1"일 수 있다. 상기 논리 값들의 비트 배열 순서를 비트 오더링이라 하며, 상기 n-비트 데이터는 상기 논리 값들에 대응되는 비트들로 상기 멀티 레벨 셀에 프로그래밍 된다. 따라서, 상기 n-비트 데이터는 상기 비트 오더링에 따라 상기 멀티 레벨 셀에 프로그래밍 된다.
본 발명이 이루고자 하는 기술적 과제는 데이터의 독출 시 페이지 별로 비트 판독 횟수를 균등화시키는 비트 오더링에 따라 n-비트 데이터로 n-비트 멀티 레벨 셀을 프로그램하는 비휘발성 메모리 장치의 데이터 저장 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 실시예에 따른 비휘발성 메모리 장치의 데이터 저장 방법은, 복수의 n-비트 멀티 레벨 셀들을 제공하는 단계, 및 상기 n-비트 멀티 레벨 셀들 각각을, 소정의 비트 오더링에 따라 n-비트 데이터로 프로그래밍하는 단계를 포함하고, 상기 비트 오더링은, 상기 n-비트 멀티 레벨 셀들의 소거 상태에 적어도 하나의 비트 "0"을 할당하고, 상기 비트 오더링은, 상기 n-비트 멀티 레벨 셀들에 저장되는 상기 n-비트 데이터의 독출 시, 상기 n-비트 데이터의 최하위 비트 내지 최상위 비트가 각각 포함되는 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시킨다.
바람직하게는, 상기 비트 오더링은, 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 합한 총 횟수를 최소화할 수 있고, 상기 제1 내지 제n 페이지 사이의 비트 판독 횟수의 차이가 0 또는 1이 되도록 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시킬 수 있다.
바람직하게는, 상기 비트 오더링은, 상기 n이 3인 경우 상기 제1 내지 제3 페이지 각각의 비트 판독 횟수를 {2, 2, 3}, {2, 3, 2} 또는 {3, 2, 2} 중 하나로 균등화시킬 수 있다.
바람직하게는, 상기 비트 오더링은, 상기 n이 4인 경우 상기 제1 내지 제4 페이지 각각의 비트 판독 횟수를 {3, 4, 4, 4}, {4, 3, 4, 4}, {4, 4, 3, 4} 또는 {4, 4, 4, 3} 중 하나로 균등화시킬 수 있다.
바람직하게는, 상기 비트 오더링은, 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 합한 총 횟수를 최소화하고, 상기 제1 내지 제n 페이지 중 하나의 페이지의 비트 판독 횟수를 1회로 고정시키고, 다른 페이지들의 비트 판독 횟수의 차이가 0 또는 1 이 되도록 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시킬 수 있다.
바람직하게는, 상기 비트 오더링은, 상기 n이 3인 경우 상기 제1 내지 제3 페이지 각각의 비트 판독 횟수를 {1, 3, 3}, {3, 1, 3} 또는 {3, 3, 1} 중 하나로 균등화시킬 수 있다.
바람직하게는, 상기 비트 오더링은, 상기 n이 4인 경우 상기 제1 내지 제4 페이지 각각의 비트 판독 횟수를 {1, 4, 5, 5}, {4, 1, 5, 5}, {4, 5, 1, 5}, {4, 5, 5, 1} 또는 {5, 5, 4, 1} 중 하나로 균등화시킬 수 있다.
바람직하게는, 상기 비트 오더링은, 상기 제1 내지 제n 페이지 사이의 비트 판독 횟수의 차이가 0 또는 1이 되도록 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시킬 수 있다.
바람직하게는, 상기 비트 오더링은, 상기 n이 3인 경우 상기 제1 내지 제3 페이지 각각의 비트 판독 횟수를 {2, 3, 3}, {3, 2, 3} 또는 {3, 3, 2} 중 하나로 균등화시킬 수 있다.
본 발명에 따른 비휘발성 메모리 장치의 데이터 저장 방법에 의하면, 멀티 레벨 셀에 저장된 데이터의 독출 시 상위 페이지로 갈수록 증가되는 비트 에러율(Bit Error Rate, 이하 BER)을 감소시켜 에러 정정 코드(Error Correcting Code, 이하 ECC) 오버헤드를 줄일 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 비휘발성 메모리 장치의 데이터 저장 방법을 나타내는 흐름도이다.
도 2는 도 1의 비트 오더링의 일예로 3-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 3은 데이터 독출 단위인 페이지와 도 2의 3-비트 멀티 레벨 셀의 상태들의 관계를 나타내는 도면이다.
도 4는 도 2의 비트 오더링에 따라 3-비트 멀티 레벨 셀에 저장된 데이터의 판독 동작 시에 발생되는 비트 에러를 설명하기 위한 도면이다.
도 5a 내지 5c는 도 2의 비트 오더링에 따라 3-비트 멀티 레벨 셀에 저장된 데이터를 판독하는 동작을 설명하기 위한 도면이다.
도 6은 도 5a 내지 도 5c의 데이터 판독 동작에 따른 3비트 멀티 레벨 셀의 페이지 별 비트 판독 횟수와 비트 에러 개수를 나타내는 도면이다.
도 7은 도 1의 비트 오더링의 일예로 3-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 8은 도 1의 비트 오더링의 일예로 3-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 9는 도 1의 비트 오더링의 일예로 4-비트 멀티 레벨 셀에 대한 비트 오더링의 일예를 나타내는 도면이다.
도 10a 내지 10d는 도 9의 비트 오더링에 따라 4-비트 멀티 레벨 셀에 저장된 데이터를 판독하는 동작을 나타내는 도면이다.
도 11은 도 10a 내지 도 10d의 데이터 판독 동작에 따른 4-비트 멀티 레벨 셀의 페이지 별 비트 판독 횟수와 비트 에러 개수를 나타내는 도면이다.
도 12는 도 1의 비트 오더링의 일예로 4-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 13은 도 1의 데이터 저장 방법에 따라 데이터를 저장하는 비휘발성 메모리 장치를 포함하는 메모리 시스템을 나타내는 도면이다.
도 14는 도 13의 메모리 시스템을 구비하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 15는 도 1의 데이터 저장 방법에 따라 데이터가 저장되는 메모리 카드를 나타내는 블록도이다.
도 16은 도 1의 데이터 저장 방법에 따라 데이터가 저장되는 솔리드 스테이트 드라이브(SSD)를 나타내는 블록도이다.
도 17은 도 16의 SSD를 포함하는 서버 시스템과, 서버 시스템을 포함하는 네트워크 시스템을 나타내는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
이하에서는 본 발명에 대한 설명의 편의를 위해, 비휘발성 메모리 장치는 NAND 플래시 메모리인 것으로 전제한다. 그러나 이에 한정되는 것은 아니며, 본 발명은 모든 비휘발성 메모리 장치에 이용될 수 있다. 또한, 이하에서는 본 발명의 비트 오더링에 대한 설명의 편의를 위해, 3-비트 및 4-비트 멀티 레벨 셀에 대한 비트 오더링에 한하여 설명되고 있다. 그러나 이에 한정되는 것은 아니며 5-비트 이상의 멀티 레벨 셀에 대해서도 동일한 원리가 적용될 수 있다.
도 1은 본 발명의 실시예에 따른 비휘발성 메모리 장치의 데이터 저장 방법을 나타내는 흐름도이다.
도 1을 참조하면, 비휘발성 메모리 장치의 데이터 저장 방법은, 복수의 n-비트 멀티 레벨 셀들을 제공하는 단계(S100), 및 상기 n-비트 멀티 레벨 셀들 각각을, 소정의 비트 오더링에 따라 n-비트 데이터로 프로그래밍하는 단계(S110)를 포함한다. 상기 비트 오더링은, n-비트 멀티 레벨 셀들의 소거 상태(erased state)에 적어도 하나의 비트 "0"을 할당한다. 즉, 상기 비트 오더링은, 상기 n-비트 멀티 레벨 셀들의 소거 상태에 할당하는 논리 값이 적어도 하나의 비트 "0"을 포함하도록 한다.
3-비트 멀티 레벨 셀의 경우를 예로 들면, 상기 비트 오더링은 3-비트 멀티 레벨 셀의 소거 상태에 "111", "110", "010", "011", "001", "000", "100", 또는 "101" 중 "111"을 제외한 어느 하나의 논리 값을 할당할 수 있다. 그리고, 상기 3-비트 멀티 레벨 셀의 프로그램(programmed) 상태에는, 소거 상태에 할당하는 논리 값을 제외하고 다른 논리 값들을 각각 할당한다.
4-비트 멀티 레벨 셀의 경우를 예로 들면, 상기 비트 오더링은 소거 상태에는 "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", 또는 "1110" 중 어느 하나의 논리 값을 할당할 수 있다. 그리고, 상기 4-비트 멀티 레벨 셀의 프로그램(programmed) 상태에는, 소거 상태에 할당하는 논리 값을 제외하고 다른 논리 값들을 각각 할당한다.
도 2는 도 1의 비트 오더링의 일예로 3-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 2를 참조하면, 3-비트 멀티 레벨 셀은 8개의 상태(E, P1, P2, P3, P4, P5, P6, P7)에 해당될 수 있다. 상태 E는 멀티 레벨 셀에 데이터가 저장되지 않은 경우의 멀티 레벨 셀의 상태로, 소거 상태를 나타낸다. 상태 P1 내지 P7은 멀티 레벨 셀에 데이터가 저장되는 경우의 상태로, 프로그램(programmed) 상태를 나타낸다. 각 상태들은 멀티 레벨 셀의 문턱전압(threshold voltage)의 범위 각각에 대응된다. 상기 상태들간의 간격은 데이터 저장 시간 증가와 프로그램/소거 사이클의 증가에 대한 상태 별 문턱전압 변화량을 일정하게 유지하기 위해 비슷하게 설정될 수 있다.
상기 3-비트 멀티 레벨 셀의 상태들(E, P1~P7)에는 "110", "010", "011", "001", "000", "100", "101", "111"의 비트 오더링에 따라 논리 값들이 각각 할당된다. 상기 3-비트 멀티 레벨 셀의 소거 상태에는 비트 "0"을 포함하는 논리 값 "110"이 할당되고, 다른 논리 값들이 프로그램 상태들(P1~P7)에 각각 할당된다.
3-비트 데이터는 상기 논리 값들에 대응되는 비트들로 상기 3-비트 멀티 레벨 셀에 프로그래밍 될 수 있다. 예를 들어, 프로그램 상태 P1에 대응되는 문턱전압 범위를 갖는 멀티 레벨 셀은 비트 "0", 비트 "1" 및 비트 "0"의 3-비트 데이터가 프로그래밍 된다. 결과적으로, 상기 3-비트 데이터는 상기 비트 오더링에 따라 상기 3-비트 멀티 레벨 셀들에 저장된다.
한편, 상기 비트 오더링에 따라 상기 3비트 멀티 레벨 셀들에 저장된 3-비트 데이터를 독출하는 경우, 페이지 별로 데이터의 각 비트를 판독하는 횟수가 균등화된다. 이하에서 도 3 내지 도 6을 참조하여 상세히 설명한다.
도 3은 데이터 독출 단위인 페이지와 도 2의 3-비트 멀티 레벨 셀의 상태들의 관계를 나타내는 도면이다.
도 3을 참조하면, 각 상태에 해당하는 3-비트 멀티 레벨 셀에 저장된 3-비트 데이터의 최하위 비트(Least Significant Bit; LSB), 중간 비트(CSB) 및 최상위 비트(Most Significant Bit; MSB)는 각각 서로 다른 제1 내지 제3 페이지에 포함된다. 예를 들어, 제1 페이지(page 1)에는 각 상태에 해당하는 3-비트 멀티 레벨 셀들에 저장된 데이터의 LSB들 '1, 0, 0, 0, 0, 1, 1, 1'이 포함되고, 제2 페이지(page 2)에는 각 상태에 해당하는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 CSB들 '1, 1, 1, 0, 0, 0, 0, 1'이 포함되고, 제3 페이지(page 3)에는 각 상태에 해당하는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 MSB들 '0, 0, 1, 1, 0, 0, 1, 1'이 포함된다. 따라서, 상기 LSB들, CSB들 및 MSB들은 각각 제1 페이지(page 1), 제2 페이지(page 2) 및 제3 페이지(page 3) 별로 독출될 수 있다.
도 4는 도 2의 비트 오더링에 따라 3-비트 멀티 레벨 셀에 저장된 데이터의 판독 동작 시에 발생되는 비트 에러를 설명하기 위한 도면이다.
n-비트 멀티 레벨 셀에 저장된 n-비트 데이터의 판독 동작을 간략히 설명한다. 상기 n-비트 데이터의 판독 동작은 n-비트 멀티 레벨 셀을 포함하는 NAND 플래시 메모리의 센싱 회로에 의해 수행된다. 상기 센싱회로는 상기 n-비트 데이터의 LSB 내지 MSB 각각이 포함되는 페이지 순서 별로, 비트들이 천이되는 인접 상태들 각각에 대응되는 문턱전압과 멀티 레벨 셀의 게이트에 인가하는 독출 전압을 비교하여 LSB 내지 MSB를 판독한다. 이 경우, 상기 센싱회로는 이전 페이지의 판독 결과를 이용하여 다른 독출전압을 인가하는 방식을 계속적으로 반복함으로써 상기 n-비트 데이터의 LSB 내지 MSB가 독출되도록 한다. 이와 같은 방식으로 n-비트 멀티 레벨 셀에 저장된 상기 n-비트 데이터를 판독하기 위해서는 2^n-1회 이상의 비트 판독 동작이 필요하게 된다. 그리고, 문턱전압과 독출전압의 비교가 정확하게 이루어지기 위해서는 상기 n-비트 멀티 레벨 셀의 상태에 대응되는 문턱전압의 범위간 간격이 일정하게 유지되어야 한다.
도 4를 참조하면, 3-비트 멀티 레벨 셀의 상태에 대응되는 문턱전압의 범위가 변화되면(점선), 인접하는 상태에 대응되는 문턱전압의 범위 간에 중첩되는 영역이 생성된다. 예를 들어, NAND 플래시 메모리에서 데이터의 프로그램/소거가 계속적으로 반복되어 엔드 오브 라이프(End Of Life, EOL)에 가까워지는 경우 문턱전압의 범위 간에 중첩되는 영역이 생성될 수 있다. 또한, 인접한 멀티 레벨 셀 사이의 커플링 현상 등으로 인해 문턱전압의 범위 간에 중첩되는 영역이 생성될 수도 있다. 이러한 이유로 소거상태 E와 프로그램 상태 P1, 또는 프로그램 상태 P1과 프로그램 상태 P2에 대응되는 문턱전압의 범위 간에 중첩되는 영역이 생성될 수 있다. 도시되지는 않았으나 다른 프로그램 상태들(P3~P7) 사이에서도 문턱전압의 범위 간에 중첩되는 영역이 생성될 수 있다.
비트 판독 시에 상기 중첩되는 영역들을 소정의 독출전압과 비교하면 에러가 발생될 수 있다. 예를 들면, 상기 프로그램 상태 P1과 프로그램 상태 P2의 중첩되는 영역을 독출전압(Vr)으로 판독하는 경우, 프로그램 상태 P1에 해당하거나 프로그램 상태 P2에 해당하는 비트가 독출될 수 있다. 즉, 1회의 비트 판독으로 인하여 2개의 비트 에러가 발생될 수 있다. 따라서, 각 상태에 대응되는 문턱전압의 범위가 변화되는 경우 논리 값의 비트 판독 시 에러가 발생될 수 있고, 발생되는 에러의 개수는 비트 판독 횟수가 많아질수록 증가하게 된다.
도 5a 내지 5c는 도 2의 비트 오더링에 따라 3-비트 멀티 레벨 셀에 저장된 데이터를 판독하는 동작을 설명하기 위한 도면이다.
도 5a를 참조하면, 제1 페이지(page 1)에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 LSB들 '1, 0, 0, 0, 0, 1, 1, 1'은 2회의 비트 판독을 통해 독출된다. 상세하게는, 상기 제1 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 LSB들은 소거상태 E와 프로그램 상태 P1사이를 독출전압(Vr11)으로 판독하고, 프로그램 상태 P4와 P5 사이를 독출전압(Vr12)으로 판독함으로써 독출된다.
도 5b를 참조하면, 제2 페이지(page 2)에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 CSB들 '1, 1, 1, 0, 0, 0, 0, 1'은 2회의 비트 판독을 통해 독출된다. 상세하게는, 상기 제2 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 CSB들은 프로그램 상태 P2와 P3 사이를 독출전압(Vr21)으로 판독하고, 프로그램 상태 P6와 P7 사이를 독출전압(Vr22)으로 판독함으로써 독출된다.
도 5c를 참조하면, 제3 페이지(page 3)에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 MSB들 '0, 0, 1, 1, 0, 0, 1, 1'은 3회의 비트 판독을 통해 독출된다. 상세하게는, 상기 제3 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 MSB들은 프로그램 상태 P1과 P2 사이를 독출전압(Vr31)으로 판독하고, 프로그램 상태 P3와 P4 사이를 독출전압(Vr32)으로 판독하고, 프로그램 상태 P5와 P6 사이를 독출전압(Vr33)으로 판독함으로써 독출된다.
이와 같이, 도 2에 도시된 비트 오더링은, 페이지 별 비트 판독 횟수들을 합한 총 횟수를 최소화하여 7회가 되도록 하고, 제1 내지 제3 페이지 사이에서 비트 판독 횟수의 차이를 0 또는 1이 되도록 균등화시킨다. 예를 들어, 상기 비트 오더링은 제1 페이지(page 1)와 제2 페이지(page 2)의 비트 판독 횟수는 동일하게 하고, 제2 페이지(page 2)와 제3 페이지(page 3)의 비트 판독 횟수의 차이는 1이 되게 하고, 제1 페이지(page 1)와 제3 페이지(page 3)의 비트 판독 횟수의 차이는 1이 되도록 하여 페이지 별 비트 판독 횟수를 균등화시킨다.
도 6은 도 5a 내지 도 5c의 데이터 판독 동작에 따른 3비트 멀티 레벨 셀의 페이지 별 비트 판독 횟수와 비트 에러 개수를 나타내는 도면이다.
도 6을 참조하면, 도 2의 비트 오더링이 사용되는 경우 제1 페이지(page 1)에서 2회, 제2 페이지(page 2)에서 2회, 제3 페이지(page 3)에서 3회로 페이지 별 비트 판독 횟수가 균등화되어 3-비트 멀티 레벨 셀에 저장된 데이터가 판독된다. 비트 판독 횟수와 발생되는 비트 에러의 개수가 비례하므로(도 4 참조), 비트 판독 시 제1 페이지(page 1)에서 4개, 제2 페이지(page 2)에서 4개, 제3 페이지(page 3)에서 6개의 비트 에러가 발생된다. 도 2의 비트 오더링이 사용되는 경우 데이터 독출 시 발생되는 비트 에러의 최대수가 일반적인 비트 오더링이 사용되는 경우보다 감소된다. 이로 인한 효과를, 이하에서 설명되는 일반적인 비트 오더링의 경우와 비교하여 확인한다.
일반적인 비트 오더링은, 인접한 상태들 사이에 1 비트씩 변화되는 패턴으로 논리 값이 할당된다. 이를 그레이 오더링이라 하며, 그레이 오더링을 사용하는 경우 각 상태에 할당되는 논리 값의 비트 할당 패턴에는 다음과 같은 두 가지 제한이 가해진다. 첫 번째로, 멀티 레벨 셀의 소거(erased) 상태에는 모두 비트 "1"만이 할당된다. 예를 들면, 2-비트 멀티 레벨 셀의 경우 소거 상태에 할당되는 논리 값은 "11"이고, 3-비트 멀티 레벨 셀의 경우 소거 상태에 할당되는 논리 값은 "111"이다. 두 번째로, 멀티 레벨 셀로의 데이터 프로그래밍은 상기 멀티 레벨 셀의 인접한 상태들의 논리 값 사이에서 비트가 변화되는 패턴에 제한을 가한다. 즉, 데이터를 프로그래밍하는 경우 문턱전압을 증가시키는 방향으로만 프로그래밍 할 수 있기 때문에, 상기 멀티 레벨 셀의 인접한 상태 각각에 대응되는 문턱전압 값이 감소되는 방향을 갖는 비트 패턴은 가질 수 없다. 따라서, 상기 그레이 오더링에 따르는 경우, 3-비트 멀티 레벨 셀의 상태들(E, P1~P7)에는 각각 논리 값 "111", "110", "100", "101", "001", "000", "010", "011"이 할당될 수 있다.
이와 같은 오더링에 따라 3-비트 멀티 레벨 셀에 저장된 3-비트 데이터를 독출하는 경우, 제1 페이지에는 각 상태에 해당하는 3-비트 멀티 레벨 셀들에 저장된 데이터의 LSB들 '1, 1, 1, 1, 0, 0, 0, 0'이 포함되므로 1회의 비트 판독이 필요하다. 그리고, 제2 페이지에는 각 상태에 해당하는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 CSB들 '1, 1, 0, 0, 0, 0, 1, 1'이 포함되므로 2회의 비트 판독이 필요하다. 그리고, 제3 페이지에는 각 상태에 해당하는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 MSB들 '1, 0, 0, 1, 1, 0, 0, 1'이 포함되므로 4회의 비트 판독이 필요하다. 즉, 그레이 오더링에 따르는 경우에는 상위 페이지로 갈수록 비트 판독 횟수가 2배씩 증가한다. 따라서, 각 페이지 별로 2개, 4개, 8개의 비트 에러가 발생된다.
전술된 바와 같이, 도 2의 비트 오더링에 따르는 경우 데이터 독출 시 발생되는 최대 비트 에러 개수는 6개로 상기 그레이 오더링에 따르는 경우에 발생되는 8개보다 감소된다. 이와 같은 비트 에러를 포함하는 페이지는 ECC를 통해 정정될 수 있다. 상기 ECC는 NAND 플래시 메모리의 컨트롤러에 의해 수행될 수 있으며, 상기 ECC 성능을 향상시키기 위해서는 페이지에 포함되는 모든 에러를 정정할 수 있도록 ECC 조건이 설계되어야 한다. 즉, 상기 ECC 조건은 페이지에 포함되는 비트 에러 개수가 최대인 경우를 상정하여 설정된다. 따라서, 도 2의 비트 오더링이 사용되는 경우는 상기 그레이 오더링이 사용되는 경우보다 더 적은 비트 에러를 정정할 수 있도록 ECC 조건이 설정될 수 있어, ECC 하드웨어 및 소프트웨어 구현이 용이하도록 하며, 패리티(parity) 비트의 오버헤드를 감소시킨다.
결과적으로, 도 1에 도시된 비휘발성 메모리 장치의 데이터 저장 방법에 따라 n-비트 멀티 레벨 셀에 데이터를 저장하는 경우, 데이터 독출 시 페이지 별 비트 판독 횟수가 균등화되고, 발생되는 비트 에러 수의 최대수가 감소되어 ECC 오버헤드를 감소시킬 수 있다.
한편, 도 2에 도시된 비트 오더링은, 데이터 독출 시 페이지 별 비트 판독 횟수를 {2, 2, 3}, 즉 제1 페이지에서 2회, 제2 페이지에서 2회, 제3 페이지에서 3회(이하에서 동일한 형식의 표현은 해당 페이지에서의 비트 판독 횟수를 나타내는 것으로 전제한다)로 균등화시키는데, 페이지 별 비트 판독 횟수를 {2, 2, 3}으로 균등화시키는 비트 오더링은 도 2에 도시된 비트 오더링에 한정되는 것은 아니다.
E P1 P2 P3 P4 P5 P6 P7
Sample 1 000 010 011 111 110 100 101 001
Sample 2 100 110 111 011 010 000 001 101
상기 <표 1>을 참조하면, Sample 1 및 Sample 2 모두, 소거 상태에는 적어도 하나의 비트 "0"이 할당되며, 페이지 별 비트 판독 횟수를 {2, 2, 3}으로 균등화시킨다. 상기 비트 오더링 Sample 1 내지 2는 예시에 불과하며 다른 논리 값들의 조합을 통해 페이지 별 비트 판독 횟수를 {2, 2, 3}으로 균등화시키는 비트 오더링이 구현될 수 있다.
또한, 제1 페이지 내지 제3 페이지 각각의 비트 판독 횟수를 {2, 2, 3}으로 균등화시키는 비트 오더링과 마찬가지로, 페이지 별 비트 판독 횟수를 {2, 3, 2} 또는 {3, 2, 2}로 균등화 시키는 비트 오더링이 도 1의 비휘발성 메모리 장치의 데이터 저장방법에 사용되는 경우에도 실질적으로 동일한 효과를 얻을 수 있다.
페이지 별 비트 판독 횟수를 {2, 3, 2} 또는 {3, 2, 2}로 균등화 시키는 비트 오더링들은 도 2에 도시된 비트 오더링과 마찬가지로, 최대 비트 에러 개수를 감소시켜 ECC 하드웨어 및 소프트웨어 구현을 용이하게하고, 패리티 비트의 오버헤드를 감소시킬 수 있다.
E P1 P2 P3 P4 P5 P6 P7
Sample 1 101 001 011 010 000 100 110 111
Sample 2 000 001 011 111 101 100 110 010
Sample 3 100 101 111 011 001 000 010 110
상기 <표 2>는 제1 페이지 내지 제3 페이지의 독출동작 횟수를 {2, 3, 2}로 균등화 시키는 비트 오더링의 예시를 나타낸다. 상기 <표 2>를 참조하면, Sample 1 내지 Sample 3 모두, 소거 상태에는 적어도 하나의 비트 "0"이 할당된다. 그리고 상기 Sample 1 내지 Sample 3의 비트 오더링이 사용되는 경우, 제2 페이지의 비트 판독 횟수가 3회로 최대이므로 최대 비트 에러 개수는 6개이다. 따라서, 제2 페이지에 포함되는 6개의 비트 에러를 정정할 수 있도록 ECC 조건이 설정될 수 있어, 도 2의 비트 오더링이 사용되는 경우와 실질적으로 동일한 효과가 있다.
E P1 P2 P3 P4 P5 P6 P7
Sample 1 011 001 101 100 000 010 110 111
Sample 2 000 001 101 111 011 010 110 100
Sample 3 100 101 001 011 111 110 010 000
상기 <표 3>은 제1 페이지 내지 제3 페이지의 독출동작 횟수를 {3, 2, 2}로 균등화 시키는 비트 오더링의 예시를 나타낸다. 상기 <표 1c>을 참조하면, Sample 1 내지 3 모두, 소거 상태에는 적어도 하나의 비트 "0"이 할당된다. 그리고 상기 Sample 1 내지 Sample 3의 비트 오더링이 사용되는 경우, 제1 페이지의 비트 판독 횟수가 3회로 최대이다. 따라서, 제1 페이지에 포함되는 6개의 비트 에러를 정정할 수 있도록 ECC 조건이 설정되어야 한다.
상기 <표 2> 및 <표 3>의 비트 오더링 Sample 1 내지 Sample 3은 예시에 불과하며 이에 한정되는 것은 아니다. 다른 논리 값들의 조합을 통해 페이지 별 비트 판독 횟수를 각각 {2, 3, 2} 및 {3, 2, 2}로 균등화시키는 비트 오더링이 다양하게 구현될 수 있다.
도 7은 도 1의 비트 오더링의 일예로 3-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 7을 참조하면, 3-비트 멀티 레벨 셀의 상태들(E, P1~P7)에는 "101", "100", "110", "111", "011", "001", "000", "010"의 비트 오더링에 따라 논리 값들이 각각 할당된다. 상기 3-비트 멀티 레벨 셀의 소거 상태에는 비트 "0"을 포함하는 논리 값 "101"이 할당되고, 다른 논리 값들이 프로그램 상태들(P1~P7)에 각각 할당된다.
상기 비트 오더링은, 페이지 별 비트 판독 횟수들을 합한 총 횟수가 7회가 되도록 하고, 제1 내지 제3 페이지 별 비트 판독 횟수를 {1, 3, 3}으로 균등화시킨다. 즉, 상기 도 7에 도시된 비트 오더링은 도 1에 도시된 비트 오더링과 달리, 제1 페이지의 비트 판독 횟수를 최소화하여 1회로 고정시키고, 제2 페이지와 제3 페이지 사이의 비트 판독 횟수의 차이가 0이 되도록 균등화시킨다.
구체적으로, 상기 제1 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 LSB들은 프로그램 상태 P3와 P4 사이를 독출전압(Vr11)으로 판독함으로써 독출된다. 상기 제2 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 CSB들은 프로그램 상태 P1과 P2 사이를 독출전압(Vr21)으로 판독하고, 프로그램 상태 P4와 P5 사이를 독출전압(Vr22)로 판독하고, 프로그램 상태 P6과
P7 사이를 독출전압(Vr23)로 판독함으로써 독출된다. 상기 제3 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 MSB들은 소거 상태 E와 프로그램 상태 P1 사이를 독출전압(Vr31)으로 판독하고, 프로그램 상태 P2와 P3 사이를 독출전압(Vr32)로 판독하고, 프로그램 상태 P5와 P6 사이를 독출전압(Vr33)로 판독함으로써 독출된다.
상기 비트 오더링에 따르는 경우, 비트 판독 시 제1 페이지에서 2개, 제2 페이지에서 6개, 제3 페이지에서 6개의 비트 에러가 발생된다(도 4 및 도 6 참조). 따라서, 도 2에 도시된 비트 오더링이 사용되는 경우와 마찬가지로, 최대 비트 에러 개수를 감소시켜 ECC 오버헤드를 줄일 수 있다.
한편, 페이지 별 비트 판독 횟수를 {1, 3, 3}으로 균등화시키는 비트 오더링은 도 7에 도시된 비트 오더링에 한정되는 것은 아니다.
E P1 P2 P3 P4 P5 P6 P7
Sample 1 110 100 101 111 011 010 000 001
Sample 2 001 000 010 011 111 101 100 110
Sample 3 010 000 001 011 111 110 100 101
상기 <표 4>를 참조하면, Sample 1 내지 Sample 3 모두, 소거 상태에는 적어도 하나의 비트 "0"이 할당되며, 페이지 별 비트 판독 횟수를 {1, 3, 3}으로 균등화시킨다. 상기 비트 오더링 Sample 1 내지 3은 예시에 불과하며 다른 논리 값들의 조합을 통해 페이지 별 비트 판독 횟수를 {1, 3, 3}으로 균등화시키는 비트 오더링이 다양하게 구현될 수 있다.
또한, 제1 페이지 내지 제3 페이지의 비트 판독 횟수를 {1, 3, 3}으로 균등화시키는 비트 오더링과 마찬가지로, 페이지 별 비트 판독 횟수를 {3, 1, 3} 또는 {3, 3, 1}로 균등화 시키는 비트 오더링이 사용되는 경우에도 실질적으로 동일한 효과를 얻을 수 있다. 이와 같은 비트 오더링은 논리 값들의 다양한 조합을 통해 구현될 수 있다.
도 8은 도 1의 비트 오더링의 일예로 3-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 7을 참조하면, 3-비트 멀티 레벨 셀의 상태들(E, P1~P7)에는 "011", "001", "010", "111", "101", "100", "100", "000"의 비트 오더링에 따라 논리 값들이 각각 할당된다. 상기 3-비트 멀티 레벨 셀의 소거 상태에는 비트 "0"을 포함하는 논리 값 "011"이 할당되고, 다른 논리 값들이 프로그램 상태들(P1~P7)에 각각 할당된다. 다만, 상기 비트 오더링은 도 2 및 도 7에 도시된 비트 오더링과 달리 최소의 비트 판독 횟수보다 큰 비트 판독 횟수가 필요한 경우의 일예를 나타낸다. 즉, 상기 비트 오더링은, 페이지 별 비트 판독 횟수들을 합한 총 횟수가 8회가 되도록 하고, 제1 내지 제3 페이지 별 비트 판독 횟수를 {2, 3, 3}으로 균등화시킨다.
구체적으로, 상기 제1 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 LSB들은 프로그램 상태 P2와 P3 사이를 독출전압(Vr11)으로 판독하고, 프로그램 상태 P6과 P7 사이를 독출전압(Vr12)로 판독함으로써 독출된다. 상기 제2 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 CSB들은 소거 상태 E와 프로그램 상태 P1 사이를 독출전압(Vr21)으로 판독하고, 프로그램 상태 P1와 P2 사이를 독출전압(Vr22)로 판독하고, 프로그램 상태 P4와 P5 사이를 독출전압(Vr23)로 판독함으로써 독출된다. 상기 제3 페이지에 포함되는 상기 3-비트 멀티 레벨 셀들에 저장된 데이터의 MSB들은 프로그램 상태 P1과 P2 사이를 독출전압(Vr31)으로 판독하고, 프로그램 상태 P3과 P4 사이를 독출전압(Vr32)로 판독하고, 프로그램 상태 P5와 P6 사이를 독출전압(Vr33)로 판독함으로써 독출된다.
상기 비트 오더링이 사용되는 경우, 비트 판독 시 제1 페이지에서 4개, 제2 페이지에서 6개, 제3 페이지에서 6개의 비트 에러가 발생된다(도 4 및 도 6 참조). 따라서, 도 2 및 도 7에 도시된 비트 오더링이 사용되는 경우와 마찬가지로, 최대 비트 에러 개수를 6개로 감소시켜 ECC 오버헤드를 줄일 수 있다. 한편, 페이지 별 비트 판독 횟수를 {2, 3, 3}으로 균등화시키는 비트 오더링은 도 7에 도시된 비트 오더링에 한정되는 것은 아니다. 논리 값들의 조합을 통해서 페이지 별 비트 판독 횟수를 {2, 3, 3}으로 균등화시키는 비트 오더링이 다양하게 구현될 수 있다.
또한, 제1 페이지 내지 제3 페이지의 비트 판독 횟수를 {2, 3, 3}으로 균등화시키는 비트 오더링과 마찬가지로, 페이지 별 비트 판독 횟수를 {3, 2, 3}, {3, 3, 2}로 균등화 시키는 비트 오더링에 따르는 경우에도 ECC 오버헤드를 감소시킬 수 있다. 예를 들면, 페이지 별 비트 판독 횟수를 {3, 2, 3}으로 균등화시키는 비트 오더링은 "101", "001", "100", "110", "111", "011", "010", "000" 일 수 있다. 다른 예를 들면, 페이지 별 비트 판독 횟수를 {3, 3, 2}으로 균등화시키는 비트 오더링은 "110", "010", "100", "101", "111", "011", "001", "000"일 수 있다. 논리 값들의 다양한 조합을 통해 예시된 비트 오더링들과 같이 페이지 별 비트 판독 횟수를 {3, 2, 3} 또는 {3, 3, 2}으로 균등화시키는 비트 오더링이 다양하게 구현될 수 있다.
도 9는 도 1의 비트 오더링의 일예로 4-비트 멀티 레벨 셀에 대한 비트 오더링의 일예를 나타내는 도면이다.
도 9를 참조하면, 4-비트 멀티 레벨 셀의 상태들(E, P1~P15)에는 "0100", "0000", "1000", "1010", "1011", "0011", "0010", "0110", "0111", "0101", "0001", "1001", "1101", "1111", "1110", "1110"의 비트 오더링에 따라 논리 값들이 각각 할당된다. 상기 4-비트 멀티 레벨 셀의 소거 상태에는 비트 "0"을 포함하는 논리 값 "0100"이 할당되고, 다른 논리 값들이 프로그램 상태들(P1~P15)에 각각 할당된다.
4-비트 데이터는 상기 논리 값들에 대응되는 비트들로 상기 4-비트 멀티 레벨 셀에 프로그래밍 될 수 있다. 예를 들어, 프로그램 상태 P1에 대응되는 문턱전압 범위를 갖는 멀티 레벨 셀은 비트 "0", 비트 "0", 비트 "0" 및 비트 "0"의 4-비트 데이터가 프로그래밍 된다. 결과적으로, 상기 4-비트 데이터는 상기 비트 오더링에 따라 상기 3-비트 멀티 레벨 셀들에 저장된다.
도 10a 내지 10d는 도 9의 비트 오더링에 따라 4-비트 멀티 레벨 셀에 저장된 데이터를 판독하는 동작을 나타내는 도면이다.
도 10a 내지 도 10d를 참조하면, 4-비트 멀티 레벨 셀의 각 상태에 해당하는 4-비트 멀티 레벨 셀들에 저장된 데이터의 LSB 내지 MSB는 각각 서로 다른 페이지에 포함된다. 즉, 상기 LSB, CSB1, CSB2 및 MSB는 각각 제1 페이지 내지 제4 페이지에 포함될 수 있다.
도 10a를 참조하면, 제1 페이지(page 1)에 포함되는 상기 4-비트 멀티 레벨 셀들에 저장된 데이터의 LSB들 '0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1'은 3회의 비트 판독을 통해 독출된다. 상세하게는, 상기 LSB들은, 프로그램 상태 P1과 P2 사이를 독출전압(Vr11)으로 판독하고, 프로그램 상태 P4와 P5 사이를 독출전압(Vr12)으로 판독하고, 프로그램 상태 P10과 P11 사이를 독출전압(Vr13)으로 판독함으로써 독출된다.
도 10b를 참조하면, 제2 페이지(page 2)에 포함되는 상기 4-비트 멀티 레벨 셀들에 저장된 데이터의 CSB1들 '1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1'은 4회의 비트 판독을 통해 독출된다. 상세하게는, 상기 CSB1들은, 소거 상태 E와 프로그램 상태 P사이를 독출전압(Vr21)으로 판독하고, 프로그램 상태 P6과 P7 사이를 독출전압(Vr22)으로 판독하고, 프로그램 상태 P9와 P10 사이를 독출전압(Vr23)으로 판독하고, 프로그램 상태 P11과 P12를 독출전압(Vr24)으로 판독함으로써 독출된다.
도 10c를 참조하면, 제3 페이지(page 3)에 포함되는 상기 4-비트 멀티 레벨 셀들에 저장된 데이터의 CSB2들 '0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0'은 4회의 비트 판독을 통해 독출된다. 상세하게는, 상기 CSB2들은, 프로그램 상태 P2와 P3 사이를 독출전압(Vr31)으로 판독하고, 프로그램 상태 P8과 P9 사이를 독출전압(Vr32)으로 판독하고, 프로그램 상태 P12와 P13 사이를 독출전압(Vr33)으로 판독하고, 프로그램 상태 P14와 P15 사이를 독출전압(Vr34)으로 판독함으로써 독출된다.
도 10d를 참조하면, 제4 페이지(page 4)에 포함되는 상기 4-비트 멀티 레벨 셀들에 저장된 데이터의 MSB들 '0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0'은 4회의 비트 판독을 통해 독출된다. 상세하게는, 상기 MSB들은, 프로그램 상태 P3과 P4 사이를 독출전압(Vr41)으로 판독하고, 프로그램 상태 P5와 P6 사이를 독출전압(Vr42)으로 판독하고, 프로그램 상태 P7과 P8 사이를 독출전압(Vr43)으로 판독하고, 프로그램 상태 P13과 P14 사이를 독출전압(Vr44)으로 판독함으로써 독출된다.
이와 같이, 도 9에 도시된 비트 오더링은, 페이지 별 비트 판독 횟수들을 합한 총 횟수를 최소화하여 15회가 되도록 하고, 제1 내지 제4 페이지 사이의 비트 판독 횟수의 차이를 0 또는 1이 되도록 균등화시킨다. 즉, 상기 비트 오더링은 제1 페이지(page 1)와 다른 페이지들(page 2 ~ page 4) 사이의 비트 판독 횟수의 차이는 1이 되도록 하고, 다른 페이지들(page 2 ~ page 4) 사이의 비트 판독 횟수의 차이는 동일하도록 균등화시킨다.
도 11은 도 10a 내지 도 10d의 데이터 판독 동작에 따른 4-비트 멀티 레벨 셀의 페이지 별 비트 판독 횟수와 비트 에러 개수를 나타내는 도면이다.
도 11을 참조하면, 도 9의 비트 오더링이 사용되는 경우 제1 페이지에서 3회, 제2 페이지에서 4회, 제3 페이지에서 4회, 제4 페이지에서 4회로 페이지 별 비트 판독 횟수가 균등화되어 4-비트 멀티 레벨 셀에 저장된 데이터가 판독된다. 비트 판독 횟수와 발생되는 비트 에러의 개수가 비례하므로(도 4 참조), 비트 판독 시 제1 페이지에서 6개, 제2 페이지에서 8개, 제3 페이지에서 8개, 제4 페이지에서 8개의 비트 에러가 발생된다.
전술된 그레이 오더링이 사용되는 경우는, 4-비트 멀티 레벨 셀의 상태들(E, P1~P15)에는 "1111", "1110", "1100", "1101", "1001", "1000", "1010", "1011", "0011", "0010", "0000", "0100", "0110", "0111", "0101", "0001"의 비트 오더링에 따라 논리 값들이 할당되므로, 상위 페이지로 갈수록 비트 판독 횟수가 2배씩 증가하여 MSB 페이지인 제4 페이지에서는 16개의 비트 에러가 발생된다. 반면, 상기 도 9의 비트 오더링에 따르는 경우는, 최대 비트 에러 개수가 8개로 감소되므로 ECC 오버헤드가 감소되고, ECC 하드웨어 및 소프트웨어 구현이 용이해진다.
페이지 별 비트 판독 횟수를 {3, 4, 4, 4}로 균등화시키는 비트 오더링은 도 9에 도시된 비트 오더링에 한정되는 것은 아니다. 다음의 <표 5>의 Sample 1 내지 Sample 3과 같은 비트 오더링도 페이지 별 비트 판독 횟수를 {3, 4, 4, 4}로 균등화 시킨다.
E P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15
Sample 1 1011 1111 0111 0101 0100 1100 1101 1001 1000 1010 1110 0110 0010 0000 0001 0011
Sample 2 1100 1110 1111 1101 1001 0001 0101 0111 0110 0010 0011 1011 1010 1000 0000 0100
Sample 3 0011 0001 0000 0010 0110 1110 1010 1000 1001 1101 1100 0100 0101 0111 1111 1011
또한, 제1 페이지 내지 제4 페이지 각각의 비트 판독 횟수를 {3, 4, 4, 4}로 균등화시키는 비트 오더링과 마찬가지로, 페이지 별 비트 판독 횟수를 {4, 3, 4, 4}, {4, 4, 3, 4} 또는 {4, 4, 4, 3}으로 균등화시키는 비트 오더링이 사용되는 경우에도 실질적으로 동일한 효과를 얻을 수 있다.
<표 6>은 페이지 별 비트 판독 횟수를 {4, 3, 4, 4}로 균등화시키는 비트 오더링의 일예들이다.
E P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15
Sample 1 1000 0000 0100 0110 0111 0101 0010 1010 1011 1001 0001 0101 1101 1111 1110 1100
Sample 2 0111 1111 1011 1001 1000 1100 1101 0101 0100 0110 1110 1010 0010 0000 0001 0011
Sample 3 1100 1110 1111 1101 0101 0001 1001 1011 1010 0010 0011 0111 0110 0100 0000 1000
Sample 4 0011 0001 0000 0010 1010 1110 0110 0100 0101 1101 1100 1000 1001 1011 1111 0111
<표 7>은 페이지 별 비트 판독 횟수를 {4, 4, 3, 4}로 균등화시키는 비트 오더링의 일예들이다.
E P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15
Sample 1 1000 0000 0010 0110 0111 0101 0100 1100 1101 1001 0001 0011 1011 1111 1110 1010
Sample 2 0111 1111 1101 1001 1000 1010 1011 0011 0010 0110 1110 1100 0100 0000 0001 0101
Sample 3 1010 1110 1111 1011 0011 0001 1001 1101 1100 0100 0101 0111 0110 0010 0000 1000
Sample 4 0101 0001 0000 0100 1100 1110 0110 0010 0011 1011 1010 1000 1001 1101 1111 0111
<표 8>은 페이지 별 비트 판독 횟수를 {4, 4, 4, 3}으로 균등화시키는 비트 오더링의 일예들이다.
E P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15
Sample 1 1000 0000 0001 0101 0111 0110 0100 1100 1110 1010 0010 0011 1011 1111 1101 1001
Sample 2 0111 1111 1110 1010 1000 1001 1011 0011 0001 0101 1101 1100 0100 0000 0010 0110
Sample 3 1001 1101 1111 1011 0011 0010 1010 1110 1100 0100 0110 0111 0101 0001 0000 1000
Sample 4 0110 0010 0000 0100 1100 1101 0101 0001 0011 1011 1001 1000 1010 1110 1111 0111
상기 <표 6>, <표 7>, <표 8>에 예시된 비트 오더링은 모두, 소거 상태에 적어도 하나의 비트 "0"을 할당한다. 또한, 최대 비트 에러 개수는 모두 8개 이로 감소되어, ECC 오버헤드를 감소시킬 수 있다. 한편, 논리 값들의 조합을 통해 예시된 비트 오더링들과 같이 페이지 별 비트 판독 횟수를 {3, 4, 4, 4}, {4, 3, 4, 4}, {4, 4, 3, 4} 또는 {4, 4, 4, 3}으로 균등화시키는 비트 오더링이 다양하게 구현될 수 있다.
도 12는 도 1의 비트 오더링의 일예로 4-비트 멀티 레벨 셀에 대한 비트 오더링을 나타내는 도면이다.
도 12를 참조하면, 4-비트 멀티 레벨 셀의 상태들(E, P1~P15)에는 "0100", "0000", "0010", "0110", "0111", "0101", "0001", "0011", "1011", "1010", "1000", "1001", "1101", "1100", "1110", "1111"의 비트 오더링에 따르는 논리 값이 할당된다. 상기 4-비트 멀티 레벨 셀의 소거 상태에는 비트 "0"을 포함하는 논리 값 "0100"이 할당되고, 다른 논리 값들이 프로그램 상태들(P1~P15)에 각각 할당된다.
상기 비트 오더링은, 페이지 별 비트 판독 횟수들을 합한 총 횟수가 15회가 되게하고, 제1 내지 제4 페이지 별 비트 판독 횟수를 {1, 4, 5, 5}로 균등화시킨다. 상기 도 12에 도시된 비트 오더링은, 도 9에 도시된 비트 오더링과 달리 제1 페이지의 비트 판독 횟수를 최소화하여 1회로 고정시키고, 제2 페이지와 제3 페이지, 제2 페이지와 제4 페이지 사이의 비트 판독 횟수의 차이가 1이 되도록 하고, 제3 페이지와 제4 페이지 사이의 비트 판독 횟수의 차이가 0이 되도록 하여 페이지 별 비트 판독 횟수를 균등화시킨다. 구체적인 판독 동작은 도 10a 내지 도 10d로부터 이해될 수 있는바, 자세한 설명은 생략한다. 상기 비트 오더링이 사용되는 경우, 비트 판독 시 제3 페이지 및 제4 페이지에서 10개의 비트 에러가 발생되므로, 최대 비트 에러 개수가 감소되어 ECC 오버헤드가 감소될 수 있다.
또한, 제1 페이지 내지 제4 페이지의 비트 판독 횟수를 {1, 4, 5, 5}로 균등화시키는 또 다른 비트 오더링은 "0000", "0001", "0011", "0010", "0110", "0111", "0101", "0100", "1100", "1110", "1010", "1000", "1001", "1101", "1111", "1011"일 수 있다. 그리고, 논리 값들의 조합을 통해 예시된 비트 오더링들과 같이 페이지 별 비트 판독 횟수를 {1, 4, 5, 5}, {4, 1, 5, 5}, {4, 5, 1, 5}, {4, 5, 5, 1} 또는 {5, 5, 4, 1}로 균등화시키는 비트 오더링이 다양하게 구현될 수 있다.
도 13은 도 1의 데이터 저장 방법에 따라 데이터를 저장하는 비휘발성 메모리 장치(100)를 포함하는 메모리 시스템(MSYS)을 나타내는 도면이다.
비휘발성 메모리 장치(100)는 도 1의 데이터 저장 방법에 따라 데이터가 저장되는 메모리 시스템(MSYS)의 저장 매체로서 제공될 수 있다. 예를 들면, 비휘발성 메모리 장치(100)는 다수의 n-비트 멀티 레벨 셀을구비하여 대용량의 저장 능력을 가지는 NAND 플래시 메모리로 구현될 수 있다. 또한, 비휘발성 메모리 장치(100)는 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수도 있다.
메모리 컨트롤러(120)는 인터페이스부(미도시)를 통해서 외부로부터 제공되는 데이터 및 어드레스를 제공받을 수 있다. 메모리 컨트롤러(120)는 호스트(미도시)로부터 제공되는 데이터, 어드레스를 참조하여 비휘발성 메모리 장치(100)를 액세스할 수 있다. 메모리 컨트롤러(120)는 ECC 회로(미도시)를 포함할 수 있다.
비휘발성 메모리 장치(100)는 n-비트 멀티 레벨 셀로부터 데이터를 독출하는 경우에 발생되는 최대 비트 에러 개수가 감소되므로, ECC 오버헤드가 감소되어 메모리 컨트롤러(120)에 포함되는 ECC 회로(미도시)의 하드웨어 및 소프트웨어 구현을 용이하게 할 수 있다.
도 14는 도 13의 메모리 시스템을 구비하는 컴퓨팅 시스템을 나타내는 블록도이다.
본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)은 버스(BUS)에 전기적으로 연결된 프로세서(CPU), 사용자 인터페이스(UI) 및 메모리 시스템(MSYS)을 구비한다. 비휘발성 메모리 장치(100)에는 프로세서(CPU)에 의해서 처리된 또는 처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 컨트롤러(120)를 통해 저장될 것이다.
본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)은 파워 공급 장치(PS)를 더 구비할 수 있다. 또한, 비휘발성 메모리 장치(100)가 플래시 메모리 장치일 경우, 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)은 휘발성 메모리 장치(예를 들어, RAM)을 더 구비할 수 있다. 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)은 도 14의 메모리 시스템(MSYS)를 포함함으로써, ECC 오버헤드가 감소되며 ECC 회로(미도시)의 하드웨어 및 소프트웨어 구현을 용이하게 할 수 있다.
도 15는 도 1의 데이터 저장 방법에 따라 데이터가 저장되는 메모리 카드(MCRD)를 나타내는 블록도이다.
도 15를 참조하면, 본 발명의 실시예에 따른 메모리 카드(MCRD)는, 메모리 컨트롤러(Ctrl) 및 메모리 장치(MEM)를 구비한다. 메모리 컨트롤러(Ctrl)는 입출력 수단(I/O)를 통해 수신되는 외부의 호스트(미도시)의 요청에 응답하여 메모리 장치(MEM)로의 데이터 기입 또는 메모리 장치(MEM)로부터의 데이터 독출을 제어한다. 또한, 메모리 컨트롤러(Ctrl)는 메모리 장치(MEM)가 플래시 메모리 장치인 경우, 메모리 장치(MEM)에 대한 소거 동작 및 프로그램 동작을 제어한다. 본 발명의 실시예에 따른 메모리 카드(MCRD)의 메모리 컨트롤러(Ctrl)는 상기와 같은 제어 동작을 수행하기 위해, 각각 호스트 및 메모리 장치와의 인터페이스를 수행하는 인터페이스부들(미도시), 및 램(RAM) 등을 구비할 수 있다. 본 발명의 실시예에 따른 메모리 카드(MCRD)는 도 1의 데이터 저장 방법에 따라 데이터를 저장하는 메모리 장치(MEM)를 구비함으로써, ECC 오버헤드가 감소된다.
도 15의 메모리 카드(MCRD)는 컴팩트 플래시 카드(CFC: Compact Flash Card), 마이크로 드라이브(Microdrive), 스마트 미디어 카드(SMC: Smart Media Card) 멀티미디어 카드(MMC: Multimedia Card), 보안 디지털 카드(SDC: Security Digital Card), 메모리 스틱(Memory Stick), 및 USB 플래시 메모리 드라이버 등으로 구현될 수 있다.
도 16은 도 1의 데이터 저장 방법에 따라 데이터가 저장되는 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 나타내는 블록도이다.
도 16을 참조하면, 본 발명의 실시예에 따른 SSD는 SSD 컨트롤러(SCTL) 및 메모리 장치(MEM)를 포함한다. SSD 컨트롤러(SCTL)는 버스(BUS)로 연결되는 프로세서(PROS), 램(RAM), 캐쉬 버퍼(CBUF) 및 메모리 컨트롤러(Ctrl)를 구비할 수 있다. 프로세서(PROS)는 호스트(미도시)의 요청(명령, 어드레스, 데이터)에 응답하여 메모리 컨트롤러(Ctrl)가 메모리 장치(MEM)와 데이터를 송수신하도록 제어한다. 본 발명의 실시예에 따른 SSD의 프로세서(PROS) 및 메모리 컨트롤러(Ctrl)는 하나의 ARM 프로세서로 구현될 수도 있다. 프로세서(PROS)의 동작에 필요한 데이터는 램(RAM)에 로딩될 수 있다. 호스트 인터페이스(HOST I/F)는 호스트의 요청을 수신하여 프로세서(PROS)로 전송하거나, 메모리 장치(MEM)로부터 전송된 데이터를 호스트로 전송한다. 호스트 인터페이스(HOST I/F)는 USB(Universal Serial Bus), MMC(Man Machine Communication), PCI-E(Peripheral Component Interconnect-Express), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Device Interface), 그리고 IDE(Intelligent Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜로, 호스트와 인터페이스 할 수 있다. 메모리 장치(MEM)로 전송하고자 하거나, 메모리 장치(MEM)로부터 전송된 데이터는 캐쉬 버퍼(CBUF)에 임시로 저장될 수 있다. 캐쉬 버퍼(CBUF)는 SRAM 등일 수 있다. 본 발명의 실시예에 따른 SSD는, 도 1의 데이터 저장 방법에 따라 데이터를 저장하는 메모리 장치(MEM)를 구비함으로써, ECC 오버헤드가 감소되는 효과가 있다.
도 17은 도 16의 SSD를 포함하는 서버 시스템(SSYS)과, 서버 시스템을 포함하는 네트워크 시스템(NSYS)을 나타내는 도면이다.
도 17을 참조하면, 본 발명의 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 본 발명의 실시예에 따른 서버 시스템(SSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 SSD를 포함하는 구비할 수 있다. 이때, 도 18의 SSD는 도 17의 SSD일 수 있다. 따라서, 본 발명의 실시예에 따른 네트워크 시스템(NSYS)은 ECC 오버헤드가 감소된다. 또한, 네트워크 시스템(NSYS)은 더 많은 저장 영역을 제공하면서도 신뢰성이 담보될 수 있는 SSD를 포함하는 서버 시스템을 구비함에 있어, 동일한 데이터 압축률을 갖더라도 에러 정정 능력을 향상시킬 수 있다.
상기에서 설명된 본 발명의 실시예에 따른 메모리 장치, 메모리 시스템, 및 이의 프로그램 방법은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flatpack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), TQFP(Thin Quad Flatpack), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (9)

  1. 비휘발성 메모리 장치의 데이터 저장 방법으로서,
    복수의 n-비트 멀티 레벨 셀(multi level cell)들을 제공하는 단계; 및
    상기 n-비트 멀티 레벨 셀들 각각을, 소정의 비트 오더링(ordering)에 따라 n-비트 데이터로 프로그래밍하는 단계;
    를 포함하고, 상기 비트 오더링은,
    상기 n-비트 멀티 레벨 셀들의 소거 상태(erased state)에 적어도 하나의 비트 "0"을 할당하고, 상기 n-비트 멀티 레벨 셀들에 저장되는 상기 n-비트 데이터의 독출 시, 상기 n-비트 데이터의 최하위 비트(Least Significant Bit; LSB) 내지 최상위 비트(Most Significant Bit; MSB)가 각각 포함되는 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  2. 제1 항에 있어서, 상기 비트 오더링은,
    상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 합한 총 횟수를 최소화하고,
    상기 제1 내지 제n 페이지 사이의 비트 판독 횟수의 차이가 0 또는 1이 되도록 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  3. 제2 항에 있어서, 상기 비트 오더링은,
    상기 n이 3인 경우 상기 제1 내지 제3 페이지 각각의 비트 판독 횟수를 {2, 2, 3}, {2, 3, 2} 또는 {3, 2, 2} 중 하나로 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  4. 제2 항에 있어서, 상기 비트 오더링은,
    상기 n이 4인 경우 상기 제1 내지 제4 페이지 각각의 비트 판독 횟수를 {3, 4, 4, 4}, {4, 3, 4, 4}, {4, 4, 3, 4} 또는 {4, 4, 4, 3} 중 하나로 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  5. 제1 항에 있어서, 상기 비트 오더링은,
    상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 합한 총 횟수를 최소화하고,
    상기 제1 내지 제n 페이지 중 하나의 페이지의 비트 판독 횟수를 1회로 고정시키고, 다른 페이지들의 비트 판독 횟수의 차이가 0 또는 1 이 되도록 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  6. 제5 항에 있어서, 상기 비트 오더링은,
    상기 n이 3인 경우 상기 제1 내지 제3 페이지 각각의 비트 판독 횟수를 {1, 3, 3}, {3, 1, 3} 또는 {3, 3, 1} 중 하나로 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  7. 제5 항에 있어서, 상기 비트 오더링은,
    상기 n이 4인 경우 상기 제1 내지 제4 페이지 각각의 비트 판독 횟수를 {1, 4, 5, 5}, {4, 1, 5, 5}, {4, 5, 1, 5}, {4, 5, 5, 1} 또는 {5, 5, 4, 1} 중 하나로 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  8. 제1 항에 있어서, 상기 비트 오더링은,
    상기 제1 내지 제n 페이지 사이의 비트 판독 횟수의 차이가 0 또는 1이 되도록 상기 제1 내지 제n 페이지 각각의 비트 판독 횟수를 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
  9. 제8 항에 있어서, 상기 비트 오더링은,
    상기 n이 3인 경우 상기 제1 내지 제3 페이지 각각의 비트 판독 횟수를 {2, 3, 3}, {3, 2, 3} 또는 {3, 3, 2} 중 하나로 균등화시키는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 저장 방법.
KR1020110105971A 2011-10-17 2011-10-17 비휘발성 메모리 장치의 데이터 저장 방법 KR20130041603A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110105971A KR20130041603A (ko) 2011-10-17 2011-10-17 비휘발성 메모리 장치의 데이터 저장 방법
US13/608,004 US20130097364A1 (en) 2011-10-17 2012-09-10 Nonvolatile memory device and related method of operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110105971A KR20130041603A (ko) 2011-10-17 2011-10-17 비휘발성 메모리 장치의 데이터 저장 방법

Publications (1)

Publication Number Publication Date
KR20130041603A true KR20130041603A (ko) 2013-04-25

Family

ID=48086783

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110105971A KR20130041603A (ko) 2011-10-17 2011-10-17 비휘발성 메모리 장치의 데이터 저장 방법

Country Status (2)

Country Link
US (1) US20130097364A1 (ko)
KR (1) KR20130041603A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI545572B (zh) * 2014-12-12 2016-08-11 群聯電子股份有限公司 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置
KR20200144197A (ko) 2019-06-17 2020-12-29 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법
US11651829B2 (en) 2019-06-17 2023-05-16 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
KR20210024269A (ko) 2019-08-21 2021-03-05 삼성전자주식회사 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310347B2 (en) * 2004-03-14 2007-12-18 Sandisk, Il Ltd. States encoding in multi-bit flash cells
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US7526715B2 (en) * 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
US8473809B2 (en) * 2009-11-20 2013-06-25 Sandisk Technologies Inc. Data coding for improved ECC efficiency

Also Published As

Publication number Publication date
US20130097364A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
US8355279B2 (en) Nonvolatile memory device and system, and method of programming a nonvolatile memory device
US9224489B2 (en) Flash memory devices having multi-bit memory cells therein with improved read reliability
US9311969B2 (en) Systems and methods of storing data
US8140935B2 (en) ECC controller for use in flash memory device and memory system including the same
US8711624B2 (en) Memory device and self interleaving method thereof
US9136872B2 (en) Memory, memory system, and error checking and correcting method for memory
US8200607B2 (en) Memory devices and data decision methods
EP2287740A1 (en) Method of error correction in MBC flash memory
US8230157B2 (en) Memory device and method of multi-bit programming
US20160070507A1 (en) Memory system and method of controlling memory device
US8806302B2 (en) Semiconductor memory device and data processing method thereof
KR102089570B1 (ko) 저장 장치 및 그것의 데이터 처리 방법
KR20100096457A (ko) 메모리 시스템 및 그것의 데이터 처리 방법
US10324785B2 (en) Decoder using low-density parity-check code and memory controller including the same
US9472300B2 (en) Data storage device and operating method thereof
US11049531B2 (en) Nonvolatile memory device, operating method thereof, and data storage apparatus including the same
US8218363B2 (en) Flash memory device and methods programming/reading flash memory device
US9304851B2 (en) Decoding with log likelihood ratios stored in a controller
KR20130041603A (ko) 비휘발성 메모리 장치의 데이터 저장 방법
CN110010185B (zh) 存储器系统及其操作方法
US11422752B2 (en) Controller, memory system, and operating methods thereof
KR20130008302A (ko) 플래시 메모리 장치의 리드 전압 조절 방법 및 이를 이용한 데이터 리드 방법
US10095424B2 (en) Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
CN115938446A (zh) 存储器装置、其操作方法以及存储器系统
CN115527596A (zh) 用于在非易失性存储器装置中编程数据的设备及系统

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid