KR101393622B1 - 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법 - Google Patents

멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법 Download PDF

Info

Publication number
KR101393622B1
KR101393622B1 KR1020070087783A KR20070087783A KR101393622B1 KR 101393622 B1 KR101393622 B1 KR 101393622B1 KR 1020070087783 A KR1020070087783 A KR 1020070087783A KR 20070087783 A KR20070087783 A KR 20070087783A KR 101393622 B1 KR101393622 B1 KR 101393622B1
Authority
KR
South Korea
Prior art keywords
data
page
pages
complementary
program
Prior art date
Application number
KR1020070087783A
Other languages
English (en)
Other versions
KR20090022435A (ko
Inventor
이수련
윤송호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070087783A priority Critical patent/KR101393622B1/ko
Priority to US12/201,476 priority patent/US7843732B2/en
Publication of KR20090022435A publication Critical patent/KR20090022435A/ko
Application granted granted Critical
Publication of KR101393622B1 publication Critical patent/KR101393622B1/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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Abstract

본 발명에 따른 하나의 워드 라인에 연결되는 복수의 메모리 셀들을 복수의 페이지들로 프로그램하는 멀티 비트 플래시 메모리 장치의 데이터 관리 방법은, (a) 에러 검출용 부호 방식에 따라 재구성된 어느 하나의 페이지로 상기 복수의 메모리 셀들을 프로그램하는 단계; 그리고 (b) 상기 프로그램하는 단계에서 오류 발생시, 상기 복수의 메모리 셀들로부터 독출된 상기 에러 검출용 부호를 이용하여 상기 어느 하나의 페이지의 유효성을 판단하는 단계를 포함하되, 상기 복수의 메모리 셀들 중 상기 에러 검출용 부호가 프로그램되는 셀들 각각은 1-비트 데이터만이 저장되도록 상기 복수의 페이지들이 설정된다.
이러한 페이지 구성을 통해서 프로그램 중에 발생하는 전원 오류 발생시에도 프로그램 중이던 페이지 데이터의 정확한 유효성 판단을 제공할 수 있다. 그리고 프로그램 중이던 메모리 셀들에 이미 저장된 다른 페이지 데이터에 미치는 영향을 최소화할 수 있다.

Description

멀티 비트 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터 처리 방법{SYSTEM COMPRISING MULTI-BIT FLASH MEMORY DEVICE AND DATA MANAGE METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 시스템 및 그것의 데이터 관리 방법에 관한 것이다.
일반적으로, 반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분된다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 불휘발성 반도체 메모리 장치로는 마스크 롬(Mask read-only memory, MROM), 프로그램 가능한 롬(Programmable read-only memory, PROM), 소거 및 프로그램 가능한 롬(Erasable programmable read-only memory, EPROM), 전기적으로 소거 및 프로그램 가능한 롬(Electrically erasable programmable read-only memory, EEPROM) 등이 있다.
일반적으로, MROM, PROM 및 EPROM은 시스템 자체적으로 소거 및 쓰기가 자유롭지 못해 일반 사용자들이 기억 내용을 갱신하기가 용이하지 않다. 이에 반해 EEPROM은 전기적으로 소거 및 쓰기가 가능하기 때문에, 계속적인 갱신이 필요한 시스템 프로그래밍(System programming)이나 보조 기억 장치로의 응용이 확대되고 있다. 특히 플래시(Flash) EEPROM은 기존의 EEPROM에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다. 플래시 EEPROM 중에서도 낸드형(NAND-type) 플래시 EEPROM(이하, '낸드형 플래시 메모리'라 칭함)은 다른 플래시 EEPROM에 비해 집적도가 매우 높은 장점을 가진다.
플래시 메모리는 셀과 비트 라인의 연결 상태에 따라 NOR형과 NAND형으로 구분된다. NOR형 플래시 메모리는 읽기 속도가 빠른데 반하여 쓰기 속도가 느리기 때문에, 주로 코드용 메모리(Code memory)로 사용된다. 그리고 NAND형 플래시메모리는 쓰기 속도가 빠르고 단위 면적당 단가가 낮기 때문에, 주로 대용량 데이터 저장장치로 사용된다. 플래시 메모리는 다른 메모리 소자와 비교할 때, 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있는 장점이 있다. 그러나 플래시 메모리에 데이터를 기입하기 위해서는 소거 동작이 반드시 선행되어야 하며, 기입되는 데이터의 단위보다 삭제되는 데이터의 단위가 크다는 특징이 있다. 이러한 특징은 플래시 메모리를 주메모리(Main memory)로 사용하는 것을 어렵게 할 뿐만 아니라, 플래시 메모리가 보조기억장치로 사용되는 경우에도 일반 하드디스크용 파일 시스템(File System)을 그대로 활용하는 것을 저해하는 요인이 된다. 따라서, 플래시 메모리의 삭제 연산을 감추기 위해, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(Flash Translation Layer; 이하, FTL이라 칭함)이 사용된다. 플래시 메모리의 기입 동작시, FTL은 파일 시스템이 생성한 논리 주소를 삭제 연산이 수행된 플래시 메모리의 물리 주소로 맵핑시켜 주는 역할을 수행한다. FTL은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(Address mapping table)을 사용한다. FTL의 어드레스 맵핑 기능으로 인해, 호스트는 플래시 메모리 장치를 하드디스크 드라이버(또는, SRAM)로 인식하고, 하드디스크 드라이버와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다. FTL은 호스트 시스템으로부터 독립된 하드웨어 형태로 구현될 수도 있고, 호스트 시스템 내부의 디바이스 드라이버 형태로 구현될 수도 있다.
또한, 플래시 메모리 장치는 동작 중에 심각한 오류의 발생으로 재부팅(Re-booting)해야 하는 상황에 직면할 수 있다. 대표적으로, 예상치 못한 전원 오류(일례로 정전과 같은 상황)를 예로 들 수 있다. 전원 오류의 발생시, 재부팅(Re-booting) 후에 모든 블록들을 스캐닝하여 각각의 블록들에 포함되는 특정 영역에 저장된 맵핑 정보를 독출하고, 에스램(SRAM)에서 구성되는 맵핑 테이블을 구성한다. 그러나, 프로그램 도중에 전원 오류가 발생하는 경우, 메모리 셀의 프로그램 상태(정상적으로 프로그램되었는지 또는 프로그램 페일인지)를 판단할 수 없다.
전원 오류의 발생시 프로그램 중인 데이터의 유효성 여부를 판단하기 위한 기술이 " 플래시 메모리의 데이터 처리 장치 및 방법 "이라는 제목으로 한국공개특허공보(특2006-0056440)에 기술되어 있으며, 이 발명의 레퍼런스에 포함된다. 그러 나, 상술한 레퍼런스에 개시된 기술은 멀티 비트 플래시 메모리 장치에는 용이하게 적용되기 어렵다는 문제가 있다.
도 1은 멀티 레벨 셀(이하, MLC) 또는 멀티 비트 셀을 포함하는 멀티 비트 플래시 메모리 장치의 프로그램 순서 및 전원 오류 발생시의 문제점을 간략히 보여주는 도면이다. 도 1을 참조하면, MLC의 프로그램 동작은 먼저 하위 비트(Least Significant Bit:이하 LSB라 칭함)가 프로그램되고 그 이후에 상위 비트(Most Significant Bit: 이하 MSB라 칭함)가 프로그램된다. (a) 단계에서 도시된 바와 같이, LSB의 프로그램 동작에 의해 메모리 셀은 소거 상태(10, 데이터 '1'에 대응)로부터 프로그램 상태(20, 데이터 '0'에 대응)로 천이 되거나, 소거 상태(10)를 유지하게 된다. 그 이후 (b) 단계의 MSB 페이지의 프로그램을 통해서, 메모리 셀의 문턱 전압은 문턱 전압 분포들(ST0, ST1, ST2, ST3) 중 어느 하나에 포함된다. 일반적으로 MSB 페이지의 프로그램 시, 높은 문턱 전압을 갖는 상태들이 우선적으로 프로그램된다. 즉, MSB 페이지의 프로그램 순서는 ① 문턱 전압 상태(20)로부터 문턱 전압 상태(ST3)로, ② 그리고 문턱 전압 상태(20)로부터 문턱 전압 상태(ST2)로 프로그램된다. ③ 마지막으로 문턱 전압 상태(10)로부터 문턱 전압 상태(ST1)로 프로그램된다.
그러나, MSB 페이지의 프로그램 동작 중에 갑작스런 전원 오류가 발생하여 프로그램 동작이 중단되는 경우를 가정해 보자. 일반적으로, 멀티 비트 플래시 메모리 장치는 LSB 페이지의 프로그램 이후에 MSB 페이지를 프로그램한다. 따라서, MSB 페이지의 프로그램 동작 중에 전원 오류가 발생하면, MSB 페이지뿐 아니라 이 전에 프로그램된 LSB 페이지의 불확실성이 증가한다. 단계 (c)에서 문턱 전압 분포(30)은 LSB가 '0'로 프로그램된 후 MSB의 프로그램 동작 중 전원 공급 중단되는 경우의 셀 전위 상태를 나타낸다. 이때, 메모리 셀의 문턱 전압은 분포(30)의 어느 한 레벨에 포함된다. 전원 오류의 발생 이후에 프로그램 중이던 페이지의 데이터를 독출하면, 읽기 전압들(예를 들면, Vrd1 또는 Vre2)에 따라 문턱 전압 상태들(ST1, ST2, ST3) 중 어느 하나에 대응하는 멀티 비트 데이터로 인식된다. 그러나, MSB 페이지의 프로그램 동작에서 타깃 데이터가 문턱 전압 상태들 (ST2, ST3)임에도 불구하고, 인식되는 문턱 전압이 문턱 전압 상태(ST1)에 포함되는 메모리 셀들이 존재할 수 있다. 이러한 메모리 셀들은 LSB 페이지 데이터가 '0'임에도 불구하고 '1'로 읽혀진다. 이 경우, 단순히 MSB 페이지만을 재프로그램하는 것으로는 문제를 해결할 수 없다. 더불어, MSB 페이지의 프로그램 동작 중 전원 공급이 중단되더라도 실제로는 MSB 프로그램이 정상적으로 완료되는 경우도 있다. 이 경우 MSB 페이지가 프로그램이 되지 않은 것으로 판단하고 LSB 페이지 데이터를 읽는다면 유효한 LSB 데이터를 잘못된 값으로 인식할 수 있다.
따라서, 멀티 비트 플래시 메모리 장치에서 발생하는 전원 오류시 동일한 메모리 셀들에 프로그램되는 페이지들 간의 영향을 줄일 수 있는 기법이 필요하다.
그리고 전원 오류가 발생한 시점에 프로그램 중이던 데이터의 유효성 여부를 정확히 판단하는 기술이 절실히 요구되고 있다.
상기 목적을 달성하기 위한 본 발명에 따른 하나의 워드 라인에 연결되는 복수의 메모리 셀들을 복수의 페이지들로 프로그램하는 멀티 비트 플래시 메모리 장치의 데이터 관리 방법은: (a) 에러 검출용 부호 방식에 따라 재구성된 어느 하나의 페이지로 상기 복수의 메모리 셀들을 프로그램하는 단계; 그리고 (b) 상기 프로그램하는 단계에서 오류 발생시, 상기 복수의 메모리 셀들로부터 독출된 상기 에러 검출용 부호를 이용하여 상기 어느 하나의 페이지의 유효성을 판단하는 단계를 포함하되, 상기 복수의 메모리 셀들 중 상기 에러 검출용 부호가 프로그램되는 셀들 각각은 1-비트 데이터만이 저장되도록 상기 복수의 페이지들이 설정되는 데이터 관리 방법.
이 실시예에 있어서, 상기 에러 검출용 부호는 프로그램 데이터 및 상기 프로그램 데이터의 반전된 데이터로 이루어진 상보 데이터를 포함한다.
이 실시예에 있어서, 상기 유효성을 판단하는 단계에서, 상기 복수의 메모리 셀들로부터 독출된 상기 상보 데이터의 상보 관계를 검출하여 상기 어느 하나의 페 이지의 유효성이 판단된다.
이 실시예에 있어서, 상기 상보 데이터는 상기 어느 하나의 페이지의 제 1 칼럼 어드레스 구간에 할당되며, 상기 제 1 칼럼 어드레스 구간에 인접한 제 2 칼럼 어드레스 구간은 소거 상태로 유지된다.
이 실시예에 있어서, 상기 복수의 페이지들 중 상기 어느 하나의 페이지를 제외한 페이지들 각각의 제 1 칼럼 어드레스 구간에는 소거 상태에 대응하는 데이터가 할당된다.
이 실시예에 있어서, 상기 제 1 칼럼 어드레스 구간과 상기 제 2 칼럼 어드레스 구간은 동일 크기를 갖는다.
이 실시예에 있어서, 상기 복수의 페이지들 중 상기 어느 하나의 페이지를 제외한 또 다른 어느 하나의 페이지의 제 2 칼럼 어드레스 구간에는 또 다른 상보 데이터가 저장되도록 페이지가 구성된다.
이 실시예에 있어서, 상기 (b) 단계는, 상기 어느 하나의 페이지 데이터를 상기 복수의 메모리 셀들로부터 독출하는 단계; 상기 독출된 어느 하나의 페이지 데이터로부터 상기 상보 데이터를 추출하는 단계; 및 상기 상보 데이터에 포함되는 프로그램 데이터와 반전된 상기 프로그램 데이터의 상보 관계를 검출하는 단계를 포함한다.
이 실시예에 있어서, 상기 상보 관계가 충족되지 않는 경우, 상기 어느 하나의 페이지는 무효로 판정된다.
이 실시예에 있어서, 상기 상보 데이터는 상기 어느 하나의 페이지에 포함되 는 메인 데이터에 대한 제어 정보들에 대응한다.
이 실시예에 있어서, 상기 제어 정보들은 메타 데이터(Meta data)이다.
이 실시예에 있어서, 상기 에러 검출 부호는 패리티(Parity), 체크섬(Check sum), 순환 과잉 검사(CRC)들 중 어느 하나이다.
이 실시예에 있어서, 상기 오류는 상기 프로그램 동작 중에 발생하는 전원 오류를 포함한다.
상기 목적을 달성하기 위한 본 발명의 메모리 시스템은, 하나의 워드 라인에 연결되는 메모리 셀들을 복수의 페이지들로 프로그램하는 멀티 비트 플래시 메모리 장치; 및 프로그램 데이터와 상기 프로그램 데이터의 반전된 데이터로 이루어진 상보 데이터를 어느 하나의 페이지에 할당하여 프로그램하도록 상기 멀티 비트 플래시 메모리 장치를 제어하고, 상기 어느 하나의 페이지의 프로그램 동작중 오류의 발생시 상기 메모리 셀들로부터 독출되는 상기 상보 데이터의 상보 관계를 검출하여 상기 어느 하나의 페이지의 유효성을 판단하는 모듈을 포함한다.
이 실시예에 있어서, 상기 모듈은 상기 어느 하나의 페이지 이외의 상기 복수의 페이지들에 있어서 상기 상보 데이터가 프로그램되는 칼럼 어드레스 범위의 데이터는 소거 상태에 대응하도록 구성한다.
이 실시예에 있어서, 상기 오류는 상기 어느 하나의 페이지를 프로그램하는 중에 발생하는 전원 오류를 포함한다.
이 실시예에 있어서, 상기 어느 하나의 페이지에는 상기 상보 데이터가 적어도 2개 이상 포함된다.
이 실시예에 있어서, 상기 모듈은 상기 상보 관계를 만족하지 않은 경우, 상기 어느 하나의 페이지를 무효 데이터로 판정한다.
이 실시예에 있어서, 상기 모듈은 상기 플래시 메모리 장치와 외부를 인터페이싱하는 메모리 컨트롤러이다.
이 실시예에 있어서, 상기 복수의 페이지들 각각은 메인 데이터 구간 및 상기 메인 데이터에 대응하는 제어 정보에 대응하는 메타 데이터 구간을 포함하되, 상기 상보 데이터는 상기 메타 데이터 구간에 포함된다.
상기 목적을 달성하기 위한 본 발명에 따른 정보 처리 시스템은, 하나의 워드 라인에 연결되는 메모리 셀들을 복수의 페이지들로 프로그램하는 멀티 비트 플래시 메모리 장치와, 프로그램 데이터와 상기 프로그램 데이터의 반전된 데이터로 이루어진 상보 데이터를 어느 하나의 페이지에 할당하여 프로그램하도록 상기 멀티 비트 플래시 메모리 장치를 제어하고, 상기 어느 하나의 페이지의 프로그램 동작중 오류의 발생시 상기 메모리 셀들로부터 독출되는 상기 상보 데이터의 상보 관계를 검출하여 상기 어느 하나의 페이지의 유효성을 판단하는 모듈을 포함하는 메모리 시스템; 및 상기 메모리 시스템과 데이터를 교환하는 호스트를 포함한다.
상술한 메모리 시스템의 구성 및 데이터 관리 방법에 따르면, 전원 오류가 발생하더라도 프로그램 중이던 페이지의 오류 확률을 줄일 수 있다.
또한, 전원 오류가 발생하더라도 동일 셀들에 이미 정상적으로 프로그램된 페이지 데이터에 미치는 영향을 줄일 수 있다.
그리고, 전원 오류가 발생한 시점에 프로그램 중이던 데이터에 대한 정확한 유효성 판단을 내릴 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다. 이하에서는, 낸드형(NAND type) 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 또한, 2-비트 이상의 모든 멀티 비트 플래시 메모리 장치에 대해서 본 발명이 적용될 수 있으나, 설명의 편의를 위해서 2-비트 MLC를 예로 들어 설명하기로 한다.
도 2는 본 발명에 따른 프로그램 방법을 예시적으로 보여주는 도면이다. 도 2를 참조하면, 프로그램 데이터는 셀 어레이에 프로그램되기 이전에 일정 비트 단위의 세그먼트(Segment)들로 분할된다. 분할된 각각의 세그먼트들은 동일한 비트 수로 반전된다. 그리고 분할된 각각의 비트 단위와 반전된 비트 단위는 상보 데이터 쌍(Complementary data pair)을 구성한다. 각각의 상보 데이터 쌍들은 프로그램되는 하나의 페이지 단위에 일정 비트 구간을 간격으로 하여 삽입된다. 즉, 프로그램되는 하나의 페이지(LSB 또는 MSB page)는 소거 상태로 유지되는 비트 구간과 상보 데이터 쌍들이 할당되는 비트 구간으로 구분된다. 소거 상태로 유지되는 비트 구간의 프로그램 데이터는 '1'로 설정된다. 이러한 프로그램되는 페이지의 설정을 좀더 자세히 설명하면 아래와 같다.
1회의 프로그램 사이클을 통해서 프로그램되는 페이지들의 데이터 구성을 하위 비트(Least Significant Bit:이하 LSB) 페이지와 상위 비트(Most Significant Bit: 이하 MSB) 페이지로 설명하기로 한다. 우선 LSB 페이지를 살펴보면, 비트 구간들(A, C)은 소거 상태로 유지되는 소거 세그먼트 구간이다. 그리고 비트 구간들(B, D) 각각은 원래 데이터 세그먼트와 반전된 데이터 세그먼트가 쌍을 이루는 상보 데이터 쌍들이 할당되는 비트 구간들이다. 비트 구간 (B)를 살펴보면, 상보 데이터 쌍(LSB_D0, nLSB_D0)은 분할된 비트 단위들 중 하나인 데이터(LSB_D0)와 반전된 데이터(nLSB_D0)를 포함한다. 그리고 비트 구간 (D)를 살펴보면, 상보 데이터 쌍(LSB_Dk-1, nLSB_Dk-1)은 분할된 비트 단위들 중 하나인 데이터(LSB_Dk-1)와 반전된 데이터(nLSB_Dk-1)를 포함한다. 이러한 방식으로 원래 데이터(LSB_Dx)와 반전된 데이터(nLSB_Dx)가 쌍을 이루는 상보 데이터 쌍들은 소거된 상태로 유지되는 소거 세그먼트들 사이에 삽입되도록 LSB 페이지가 구성된다. 바람직하게는 상보 데이터 쌍들의 비트 수는 소거 세그먼트의 비트 수와 동일하게 구성될 수 있다. 그러나, 소거 세그먼트의 비트 수는 본 발명의 실시예에 국한되지는 않는다.
반면에, 상술한 LSB 페이지가 프로그램된 메모리 셀들(예를 들면, 동일한 워드 라인에 연결되는 메모리 셀들)에 프로그램되기 위한 MSB 페이지의 구성은 다음과 같다. 의미있는 데이터가 프로그램되는 상보 데이터 쌍들(MSB_Dx, nMSB_Dx)은 상술한 LSB 페이지의 소거 세그먼트들에 대응하는 비트 구간들(A, C)에 칼럼 어드 레스가 할당된다. 그러나, 이미 LSB 페이지에서 상보 데이터 쌍들이 프로그램된 비트 구간들(B, D)에 대응하는 칼럼 어드레스 구간들은 MSB 페이지의 소거 세그먼트 ('1111')들이 할당된다. 결국, 본 발명에 따른 LSB 페이지 및 MSB 페이지의 설정에 따라, 멀티 비트 플래시 메모리 셀들 각각에는 1-비트의 의미있는 데이터만 프로그램된다.
이상을 종합할 때, 프로그램되는 하나의 페이지는 반전된 데이터 및 비반전된 데이터로 구성되는 상보 데이터 쌍들을 포함한다. 그리고 상보 데이터 쌍들의 사이에는 상보 데이터 쌍들 각각과 동일한 비트 수에 대응하는 소거 세그먼트들이 포함된다. 그리고 멀티 비트 데이터를 프로그램하기 위해서 LSB 페이지에서는 소거 세그먼트가 할당된 칼럼 어드레스 구간에 MSB 페이지에서는 상보 데이터 쌍들이 할당된다. 이러한 동일 워드 라인을 공유하는 메모리 셀들에 할당되는 멀티 페이지 데이터들의 설정을 통하여 MSB 페이지의 프로그램 도중에 전원 오류가 발생하더라도 이미 프로그램된 LSB 페이지에 미치는 영향은 최소화될 수 있다. 그리고 전원 오류에 의해서 발생하는 불확실성을 현저히 줄일 수 있다. 이러한 효과는 이후 보다 자세히 설명하기로 한다. 전원 오류시, 재부팅된 메모리 장치로부터 독출된 상보 데이터 쌍들의 상보 관계 유지 여부를 이용하여 데이터의 유효성이 정확히 판별될 수 있다. 상술한 도면에서 상보 데이터 쌍과 소거 세그먼트들이 각각 4-비트 크기를 갖는 것으로 설명되었으나, 본 발명은 이에 국한되지 않는다. 즉, 상보 데이터 쌍과 소거 세그먼트의 비트 수의 적정 크기는 임의로 선택될 수 있다.
더불어, 페이지 데이터의 유효성 판단의 수단을 제공하기 위한 기법이 도 2 에서 기술된 상보 데이터 쌍을 구성하는 방식에 국한되지 않음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다. 예를 들면, 패리티(Parity) 방식이나 CRC(Cyclic Redundancy Checking) 방식 등의 에러 검출용 부호 방식들이 유효성 판단의 수단으로 사용될 수 있다. 상술한 에러 검출용 기법이 적용된 데이터가 소거 세그먼트들 사이에 위치하도록 LSB 페이지 및 MSB 페이지가 설정되고, 멀티 비트 플래시 메모리 셀들 각각에는 1-비트의 의미있는 데이터만 프로그램되면 된다. 이하에서는 에러 검출용 부호 방식으로 상술한 상보 데이터 쌍이 본 발명의 특징을 설명하기 위한 예시적인 실시예로 설명하기로 한다.
도 3은 본 발명에 따른 메모리 시스템(100)을 간략히 보여주는 블록도이다. 도 3을 참조하면, 본 발명의 메모리 시스템(100)은 메모리 컨트롤러(110)와 플래시 메모리 장치(120)로 구성된다. 메모리 컨트롤러(110)는 플래시 변환 계층(FTL)에 대응하는 알고리즘에 따라 상술한 도 2에서 설명된 방식으로 프로그램 데이터를 재구성한다. 그리고 전원 오류의 발생시 메모리 컨트롤러(110)는 플래시 변환 계층(FTL)에서 정의된 절차에 따라 프로그램 중이던 데이터의 유효성을 판단한다. 좀더 자세히 설명하면 다음과 같다.
호스트(Host)로부터의 요청 또는 데이터 관리 시퀀스(Data management sequence)에 따라 메모리 컨트롤러(110)는 플래시 메모리 장치(120)에 데이터를 프로그램해야 하는 상황에 직면한다. 그러면, 메모리 컨트롤러(110)는 프로그램 데이터를 상술한 도 2의 방식에 따라 상보 데이터 쌍(Complementary data pair) 또는 그 이외의 에러 검출용 부호 방식에 따라 구성한다. 메모리 컨트롤러(110)는 상보 데이터 쌍들을 소거 세그먼트들 사이에 위치하도록 칼럼 어드레스를 설정하여 페이지 단위를 재구성한다. 메모리 컨트롤러(110)는 재구성된 페이지 단위의 프로그램 데이터를 프로그램하도록 플래시 메모리 장치(120)를 제어한다. 플래시 메모리 장치(120)는 메모리 컨트롤러(110)의 제어에 따라 프로그램 데이터를 LSB 페이지 또는 MSB 페이지에 프로그램한다.
프로그램 도중에 전원 오류가 발생하는 경우, 메모리 컨트롤러(110)는 FTL 알고리즘에 따라 어드레스 맵핑 테이블을 참조하여 전원 오류 발생 이전에 프로그램되던 페이지 데이터를 확인한다. 확인된 프로그램 데이터의 페이지 어드레스를 호출하여 메모리 컨트롤러(110)는 오류 발생 당시에 프로그램 중이던 페이지 데이터를 독출한다. 독출된 MSB 페이지 또는 LSB 페이지로부터 상보 데이터 쌍들이 추출되고, 상보 데이터 쌍들의 상보 관계의 유지 여부가 검출된다. 상보 관계를 만족하는지의 여부에 따라 페이지 데이터의 유효성이 결정되고, 결정된 유효성에 따라 재프로그램 여부가 결정될 것이다.
상술한 유효성 판단을 위해, 메모리 컨트롤러(110)는 에스램(111), 프로세싱 유닛(112), 에러 정정 블록(114) 등을 포함한다. 그리고 호스트와의 인터페이싱을 위한 호스트 인터페이스(113)와 플래시 메모리 장치(120)와 인터페이싱을 위한 메모리 인터페이스(115)를 포함한다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(100)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 그리고, 본 발명의 메모리 시스템(100)은 메모리 인터페이 스(115)를 경유하지 않고 버스와 직접 연결될 수 있는 플래시 메모리 장치(120)에도 적용될 수 있음은 자명하다. 또는, 원낸드(OneNAND) 플래시 메모리와 같은 퓨전 메모리에도 본 발명의 프로그램 데이터의 할당 방식이 적용될 수 있다.
메모리 컨트롤러(110)는 본 발명의 특징을 설명하기 위한 예시적인 실시예에 불과하다. 즉, 호스트(Host)의 운영 체제(OS)에 포함되는 파일 시스템(File system)이나 소프트웨어 모듈이 상술한 도 2에서 기술된 방식으로 프로그램 데이터를 재구성하고 유효성을 판단할 수 있다. 이 경우, 메모리 컨트롤러(110)의 구성이 없이도 본 발명의 프로그램 동작과 유효성 판단 동작이 수행 가능하다. 즉, 메모리 컨트롤러(110)는 호스트(Host)에 포함되는 소프트웨어 또는 하드웨어 모듈(Module)로서 구성될 수 있다.
이상을 요약하면, 프로그램 동작 중 전원 오류의 발생시 메모리 시스템(100)은 재부팅되며 전원 오류가 발생하기 이전의 제반 상태들에 대한 검색을 수행한다. 메모리 시스템(100)은 전원 오류가 발생한 시점에서 프로그램 중이던 데이터의 유효성 여부를 판별하게 된다. 메모리 컨트롤러(110)는 FTL 알고리즘에 따라 전원 오류가 발생한 시점에 프로그램 중이던 페이지 데이터를 독출한다. 독출된 페이지 데이터에서 상보 데이터 쌍을 검출하여 상보 관계의 유지 여부를 검출한다. 상보 관계가 유지되는 페이지의 데이터는 유효한 것으로 판단하고, 상보 관계가 깨진 페이지 데이터는 유효하지 않은 것을 판단한다.
도 4는 상술한 도 3의 메모리 컨트롤러(110)에 의해서 수행되는 본 발명에 따른 프로그램 동작을 간략히 보여주는 순서도이다. 도 4를 참조하여, 전원 오류의 발생시에도 MSB 페이지와 LSB 페이지 간의 영향을 최소화하고도 데이터의 유효성의 여부를 정확히 검출할 수 있는 본 발명의 프로그램 방법이 설명될 것이다.
메모리 컨트롤러(110)는 외부의 요청 또는 자체적인 판단에 의거하여 프로그램 동작을 수행할 조건을 모니터링 한다(S10). 모니터링 결과, 데이터를 프로그램해야 하는 조건이 만족되면, 절차는 본 발명에 따른 데이터 재구성을 위한 단계(S30)로 이동한다. 반면에, 프로그램 조건을 충족하지 않으면, 프로그램 조건이 충족될 때까지 대기한다(S20).
만일 데이터를 프로그램해야 하는 조건이 충족되면, 메모리 컨트롤러(110)는 프로그램 데이터를 도 2에서 설명된 방식에 따라 재구성한다. 프로그램 데이터는 호스트(Host)로부터 제공되는 데이터 또는 메모리 컨트롤러(110)에서 생성되는 업데이트용 데이터일 수 있다. 일반적으로 메타 데이터나 에러 코드와 같은 메인 데이터에 대한 제어 정보는 스페어 영역(Spare area)에 저장된다. 스페어 영역에 저장되는 제어 정보의 경우, 메모리 컨트롤러(110)에서 생성되어 덧붙여진다. 프로그램 데이터는 일정 비트 단위로 분할되며, 분할된 일정 비트들 각각은 반전된 비트들로 구성되는 상보 데이터 쌍을 구성한다. 그리고 상보 데이트 쌍들은 소거 상태에 대응하는 소거 세그먼트들 사이에 삽입되도록 재구성된다. 이때, MSB 페이지로 프로그램되는 데이터는 상술한 도 2의 방식에 따라 MSB 페이지가 재구성된다. 즉, LSB 페이지에서는 소거 세그먼트에 할당된 칼럼 어드레스 구간이 MSB 페이지에서는 상보 데이터 쌍이 할당되도록 페이지가 재구성된다. 반대로, LSB 페이지에서는 상보 데이터 쌍이 할당된 칼럼 어드레스 구간이 MSB 페이지에서는 소거 세그먼트들이 할당되도록 재구성된다. 결국, 재구성된 각각의 페이지 데이터는 프로그램하기 위해서 소거 세그먼트에 소요되는 비트 수만큼의 손실을 갖는다. 그리고, 반전된 데이터에 할당되는 비트 수를 고려하면, 프로그램 비트 효율(의미있는 비트 수/프로그램 가능한 비트 수)은 25%에 불과하다. 그러나 전원 오류의 발생시 충분한 성능 효과를 제공하기 때문에, 신뢰성이 중요시되는 데이터에 있어서 유용하게 사용 가능하다(S30).
이어서, 메모리 컨트롤러(110)는 페이지 데이터를 페이지 버퍼(122)에 로드하고 셀 어레이(121)에 프로그램되도록 플래시 메모리 장치(120)에 프로그램 명령어 및 프로그램 데이터를 제공한다. 명령어에 응답하여 플래시 메모리 장치(120)는 선택된 워드 라인들의 LSB 페이지 또는 MSB 페이지를 프로그램한다(S40). 여기서, 정상적으로 프로그램이 완료되면, 제반 프로그램 동작은 종료된다.
그러나, 상술한 프로그램 단계(S40)가 진행중인 어느 한 시점에 전원 오류가 발생하면, 메모리 컨트롤러(110)는 FTL에 의해서 정의된 절차에 따라 유효성 판단을 위한 동작을 수행한다. 유효성 판정을 위한 제반 절차는 후술하는 도 5에서 설명하기로 한다. 이상의 각 단계를 포함하는 프로그램 방법에 따르면, MSB 페이지의 프로그램 도중에 전원 오류가 발생하더라도 그 영향은 이미 프로그램된 LSB 페이지에 최소한으로 전달된다. 그리고, 하나의 셀에 1-비트의 의미있는 데이터가 할당됨에 따라 전원 오류가 발생하더라도 무효한 데이터가 될 확률이 획기적으로 감소한다. 또한, 상보 데이터 쌍들을 통해 LSB 페이지 또는 MSB 페이지의 유효성을 정확히 판단할 수 있다.
도 5a 및 도 5b는 상술한 도 4에 따른 프로그램 동작 중에 전원 오류가 발생하는 경우 수행되는 데이터의 유효성 판정 동작의 일부를 보여주는 순서도이다. 즉, 도 5a는 본 발명에 따라 전원 오류가 발생된 경우에 FTL에 의해서 수행되는 프로그램된 데이터의 유효성 여부를 판단하는 동작을 보여준다. 그리고 도 5b는 프로그램된 데이터의 유효성 평가(Validity estimation)의 방법을 예시적으로 보여주는 순서도이다.
도 5a를 참조하면, 전원 오류가 발생하면 메모리 시스템(100)은 재부팅 또는 리셋(Reset) 된다. FTL의 알고리즘에 따라 메모리 시스템은 전원 오류가 발생한 시점에 프로그램 중이던 페이지 어드레스를 호출한다. 이러한 동작은 플래시 메모리 장치에 대한 스캐닝(Scanning)을 통해서 또는 어드레스 맵핑 테이블의 복구를 통해서 이루어질 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다(S110). 메모리 컨트롤러(110)는 호출된 페이지 어드레스를 참조하여 전원 오류가 발생한 시점에 프로그램 중이던 페이지를 독출한다. 독출된 페이지 데이터는 MSB 페이지 또는 LSB 페이지일 수 있다. 그러나, 본 발명에 따른 페이지 재구성을 통하여 MSB 페이지의 프로그램 중에 전원 오류가 발생해도 이미 프로그램된 LSB 페이지에는 크게 영향을 미치지 못한다. 따라서, 전원 오류가 발생한 시점에서 프로그램 중이던 페이지가 LSB 페이지인지 또는 MSB 페이지인지 확인하는 동작은 큰 의미가 없다(S120). 이후에는 유효성 평가를 통해서 도출된 평가 정보(Estimated infromation)를 전원 오류 관리 블록(Power fail management element;미도시됨)로 전달한다(S130). 평가 정보의 제공이 완료되면, 유효성 검출 동작은 종료된다.
이상에서 설명된 전원 오류시 프로그램 중이던 데이터에 대한 유효성 평가에 따르면, 1회의 읽기 동작만으로 유효성 평가가 가능하다. 즉, 하나의 셀에 1-비트의 데이터가 저장되는 본 발명에 따른 프로그램 방법에 의하면, MSB 페이지의 프로그램 동작중에 전원 오류가 발생하더라도 이미 프로그램된 LSB 페이지 데이터로의 영향은 최소화된다. 따라서, MSB 페이지의 프로그램 도중에 전원 오류가 발생하는 경우라 할지라도 동일 워드 라인의 LSB 페이지에 대한 유효성 판단은 수행될 필요가 없다. 결국, 본 발명의 프로그램 방법 및 유효성 판단 방법은 프로그램 도중에 전원 오류가 발생하더라도 에러 발생 확률을 줄일 수 있으며 데이터의 유효성 판단을 정확하게 수행할 수 있게 한다.
도 5b를 참조하면, 도 5a의 전원 오류가 발생하는 시점에서 프로그램 중이던 페이지 데이터의 독출 및 유효성 평가 단계(S120)의 상세한 동작들이 예시적으로 설명되어 있다. 우선, 전원 오류가 발생된 시점에 프로그램 중이던 페이지 데이터가 독출된다(S121). 독출된 페이지 데이터에는 소거 세그먼트들과 상보 데이터 쌍들을 포함한다. 따라서, 소거 세그먼트는 무시되고(Discard) 상보 데이터 쌍들이 추출된다(S122). 추출된 상보 데이터 쌍들 각각이 상보성을 갖는지 아니면 상보성이 깨어졌는지 검출된다(S123). 검출 결과(S124), 상보 데이터 쌍들 각각이 상보성을 만족하는 경우에는 전원 오류 발생에도 불구하고 프로그램 중이던 페이지는 정상적으로 프로그램 완료된 것으로 판단한다(S125). 그러나 추출된 상보 데이터 쌍들 중 어느 하나라도 상보성을 만족하지 못하는 경우, 전원 오류 발생 시점에서 프로그램 중이던 페이지는 무효한 것으로 판정한다(S126). 이 경우, FTL에 의해서 수 행되는 절차들에 의해서 무효로 판정된 페이지는 재프로그램되어야 할 것이다.
이상의 도 5a 및 도 5b에서 설명된 본 발명에 따른 유효성 판단에 따르면, 전원 오류가 발생한 시점에 프로그램 중이던 페이지가 MSB 페이지인지 또는 LSB 페이지인지에 관계없이 데이터의 유효성을 판단할 수 있다. 즉, MSB 페이지의 프로그램 동작 중에 전원 오류가 발생하더라도, 본 발명의 프로그램 방법에 따라 이미 프로그램 완료된 LSB 페이지에 미치는 영향은 최소화된다.
도 6은 상보 데이터 쌍들 각각의 유효성 여부를 검출하는 방법을 예시적으로 보여주기 위한 도면이다. 도 6을 참조하면, 독출된 페이지가 MSB 페이지인 경우의 유효성 판단을 수행하는 논리 게이트의 구조를 간략히 보여준다. 독출된 페이지로부터 추출된 상보 데이터 쌍들(210)은 비반전 데이터와 반전 데이터 비트들 각각이 XOR 게이트에 입력된다. 이러한 방식으로 상보 데이터 비트 쌍들이 상보성을 유지하고 있는지가 검출된다. 만일 MSB 페이지에 포함되는 상보 데이터 쌍들(210) 모두가 상보성을 유지하고 있는 경우, 모든 XOR 게이트들의 출력은 논리 'HIGH'가 된다. 이 경우, 유효성의 여부를 지시하는 판별 신호(Valid)는 논리 'HIGH'로 출력될 것이다. 반면에, 상보 데이터 쌍들 중 어느 하나라도 상보성이 깨진 비트들이 존재하는 경우, 대응하는 XOR 게이트는 논리 'LOW'를 출력한다. 결과적으로 판별 신호(Valid)는 논리 'LOW'가 되어 독출된 데이터가 유효하지 않음을 지시한다.
이상에서 설명된 상보성의 유지 여부에 따라 페이지 데이터의 유효성을 판별하는 논리 회로는, 본 발명의 유효성을 검출하는 방법을 가시적으로 보여주기 위한 예시적인 구성에 지나지 않는다. 상술한 회로에 대응하는 대수식 연산을 수행하는 소프트웨어에 의해서 상보 데이터 쌍들의 유효성이 검출될 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
도 7a 및 도 7b는 본 발명의 프로그램 방법의 다른 실시예를 간략히 보여주는 도면들이다.
도 7a를 참조하면, 도 2에서 설명된 방식의 페이지 구성을 하나의 페이지 중 일부 구간에만 적용하는 실시예를 보여준다. 예를 들면, 프로그램되는 데이터의 제어 정보들(Error code, meta data)을 도 2에서 설명된 방식으로 프로그램할 수 있다. 즉, 고신뢰성이 필요한 데이터를 상보 데이터 쌍으로 구성하고, 멀티 비트 페이지들 각각에 소거 세그먼트들 사이에 삽입한다. 만일, 전원 오류가 발생하면 메인 데이터에 대한 제어 정보가 포함된 스페어 영역의 유효성을 신속히 판단하여 전원 오류 복구 동작을 위해 사용될 수 있다.
도 7b는 3-비트 MLC 또는 그 이상의 MLC에 본 발명의 사상을 적용한 실시예를 보여주기 위한 도면이다. 도 2에서는 2-비트 MLC 플래시 메모리 장치를 예로 들어서 설명하였으나, 본 발명은 2-비트 MLC에만 국한되지 않는다. 3-비트 MLC를 예로 들어서 설명된 도 7b에 따르면, 각각의 페이지는 1개의 상보 데이터 쌍과 2개의 소거 세그먼트들을 기본 단위로 한다. 제 1 페이지(1st page)를 예로 들면, 칼럼 어드레스 구간 (A, B)에서는 소거 세그먼트가 할당된다. 그리고 칼럼 어드레스 구간 (C)에는 상보 데이터 쌍(P1_D0, nP1_D0)이 할당된다. 이러한 배열 순서에 따라 프로그램 데이터는 제 1 페이지(1st page)를 구성한다. 제 2 페이지(2nd page)는 칼럼 어드레스 구간 (A, C)에 소거 세그먼트가 할당된다. 그리고 칼럼 어드레스 구 간 (B)에 상보 데이터 쌍(P2_D0, nP2_D0)이 할당된다. 제 3 페이지(3rd page)는 칼럼 어드레스 구간 (B, C)에 소거 세그먼트가 할당된다. 그리고 칼럼 어드레스 구간 (A)에는 상보 데이터 쌍(P3_D0, nP3_D0)이 할당된다. 칼럼 어드레스 구간(A, B, C)에서만 살펴보면, 제 1 페이지(1st page)에 상보 데이터 쌍(P1_D0, nP1_D0)이 할당된 칼럼 어드레스 구간(C)에는 제 2 페이지 및 제 3 페이지에서는 소거 세그먼트들이 할당된다. 마찬가지로, 제 2 페이지(2nd page)에 상보 데이터 쌍(P2_D0, nP2_D0)이 할당된 칼럼 어드레스 구간(B)에는 제 1 페이지 및 제 3 페이지에서는 소거 세그먼트들이 할당된다. 제 3 페이지(3rd page)에 상보 데이터 쌍(P3_D0, nP3_D0)이 할당된 칼럼 어드레스 구간 (A)에는 제 1 페이지 및 제 2 페이지에서는 소거 세그먼트들이 할당된다. 결국, 이러한 페이지의 구성을 통해서 하나의 메모리 셀에는 1-비트의 의미있는 데이터가 프로그램된다. 즉, 복수의 페이지가 프로그램되더라도 동일 워드 라인에 연결되는 메모리 셀들 각각은 상보 데이터 쌍들 각각에 대응하는 1-비트만 저장한다. 여기서, 상보 데이터 쌍의 어드레스 할당 순서가 칼럼 어드레스 구간들(C→B→A)로 도시되었으나 이는 본 발명의 일 실시예에 지나지 않는다. 3-비트 MLC의 예가 상술한 설명들에 의해서 기술되었으나, 이러한 페이지 구성은 4-비트 이상의 MLC에서도 적용될 수 있음은 자명하다.
이상의 실시예들을 통해서 전원 오류나 기타 프로그램 오류들이 발생할 때, 프로그램 중이던 페이지의 유효성 여부를 효과적으로 판단할 수 있는 기초를 제공한다. 그리고, 본 발명의 페이지 구성을 통해서 프로그램 동작 동안 동일 워드 라인에 대응하는 멀티 비트 페이지들간 영향을 차단할 수 있어 데이터의 신뢰성을 높 일 수 있다.
도 8은 본 발명에 따른 프로그램 데이터의 페이지별 재배열에 따른 부가적인 효과를 간략히 보여주는 표들이다. 표 (a)는 하나의 메모리 셀에 2-비트 데이터를 저장하는 종래의 기술에서 전원 오류의 발생시 하나의 2-비트 메모리 셀이 갖는 데이터 상태들의 경우의 수들을 나타낸다. 그리고 표 (b)는 본 발명에 따른 프로그램 방법에서 전원 오류의 발생시 하나의 메모리 셀이 가지는 데이터 상태들의 경우의 수를 나타낸다.
표 (a)를 참조하면, LSB가 '0'으로 프로그램된 경우, MSB의 프로그램 중 전원 오류가 발생하면 메모리 셀은 데이터 '00', '10', '01'들 중 어느 하나에 대응하는 문턱 전압을 갖는다. 만일, 프로그램 중이던 MSB가 '0'이었다면, 타깃 데이터는 '00'이 되어야 하고, 프로그램 중이던 MSB가 '1'이었다면, 타깃 데이터는 '10'이 되어야 한다. 그러나, 전원 오류에 따라 각각의 경우 3개의 데이터 상태들 중 어느 하나에 대응하는 문턱 전압을 가지게 될 것이다. 이미 프로그램된 LSB가 '1'인 경우, 전원 오류가 발생하면 메모리 셀은 데이터 '01' 또는 '11' 중 어느 하나에 대응하는 문턱 전압을 가지게 될 것이다. 표 (a)에서 빗금친 데이터들은 MSB가 정상적으로 프로그램된 경우를 나타낸다. 따라서, 하나의 메모리 셀에 2-비트 데이터가 프로그램되는 종래 기술에서 MSB의 프로그램 도중에 전원 오류가 발생할 때, 유효한 상태를 유지할 경우는 9개의 경우 중 4개에 해당된다.
표 (b)는 본 발명에 따른 하나의 메모리 셀에 1-비트의 유효 데이터가 저장되는 경우의 수들을 보여준다. 본 발명에 따르면, 소거 세그먼트의 할당에 따라 LSB 또는 MSB 중 어느 하나는 반드시 논리 '1'이 되어야 한다. 따라서, LSB와 MSB가 동시에 '0'이 되는 데이터 '00'은 존재하지 않는다. 이런 조건은 표에서 '×'로 표시되어 있다. 이러한 조건에 따라 MSB의 프로그램 동작 중에 전원 오류가 발생하더라도 메모리 셀이 정상적으로 프로그램될 확률은 높아진다. MSB 페이지의 프로그램 동작중에 발생한 전원 오류에도 불구하고, 메모리 셀이 타깃 상태로 프로그램된 경우는 전체 6개의 경우의 수중에 '01', '00', '10', '11' 에 대응하는 4개가 존재한다. 따라서, 하나의 셀에 2-비트가 프로그램되는 경우에 비하여 전원 오류에 보다 큰 안정도를 갖는다. 따라서, 프로그램되는 데이터의 신뢰성도 높아지며, 유효한 데이터로 판정될 확률도 높아질 것이다.
이상에서 표들을 통해서 설명된 본 발명의 프로그램 방법에 따르면, 소거 세그먼트의 존재에 의해서 하나의 메모리 셀의 LSB와 MSB에 동시에 '0'이 할당되는 경우는 배제된다. 따라서 전원 오류가 발생하더라도 유효한 데이터로 판정될 확률이 높아진다. 그리고 상보 데이터 세그먼트의 구성을 통해서 유효성을 판단하기 위한 정확한 데이터 정보가 제공된다.
도 9는 본 발명에 따른 메모리 시스템(310)을 장착하는 정보 처리 시스템(300)을 간략히 보여주는 블록도이다. 도 9를 참조하면, 모바일 기기나 데스크 톱 컴퓨터와 같은 정보 처리 시스템에 본 발명의 플래시 메모리 시스템(310)이 장착된다. 본 발명에 따른 정보 처리 시스템(300)은 플래시 메모리 시스템(310)과 각각 시스템 버스(360)에 전기적으로 연결된 모뎀(320), 중앙처리장치(330), 램(340), 유저 인터페이스(350)를 포함한다. 플래시 메모리 시스템(310)은 앞서 언 급된 메모리 시스템(100, 도 3 참조)과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 시스템(310)에는 입출력 장치(미도시됨)를 통해서 제공되거나 또는, 중앙처리장치(330)에 의해서 처리된 데이터가 저장된다. 프로그램 동작중 전원 오류가 발생하면, 정보 처리 시스템(300)은 재부팅되고 메모리 시스템(310)은 전원 오류가 발생한 시점의 프로그램 데이터의 유효성을 판정한다. 특히, 메모리 컨트롤러(311)는 최종 프로그램 동작시에 할당된 페이지 어드레스를 제공받아 독출하고 본 발명에 따른 판단 방법에 따라 데이터의 유효성을 검출한다. 데이터의 유효성 검출 결과에 따라 재프로그램 여부를 결정하게 될 것이다. 하나의 멀티-비트 메모리 셀에 1-비트의 유효한 데이터를 저장하는 방법을 통해서 전원 오류에 덜 민감한 멀티 비트 플래시 메모리 시스템을 제공할 수 있다. 메모리 컨트롤러(311)는 호스트 측에 포함되는 하드웨어 또는 소프트웨어 모듈로 구성될 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
여기서, 상술한 플래시 메모리 시스템(310)이 반도체 디스크 장치(SSD)로 구성될 수 있다. 도시되지 않았지만, 본 발명에 따른 정보 처리 시스템(300)에는 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor:CIS), 디스플레이(Display), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
또한, 본 발명에 따른 플래시 메모리 장치 또는 메모리 시스템은 다양한 형태들의 패키지로 실장 될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 또는 메모리 시스템은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 전원 오류시 발생하는 문제점을 보여주는 도면;
도 2는 본 발명에 따른 프로그램 데이터의 재배열 방법을 보여주는 도면;
도 3은 본 발명의 플래시 메모리 시스템을 보여주는 블록도;
도 4는 본 발명에 따른 프로그램 방법을 보여주는 순서도;
도 5a는 본 발명에 따른 전원 오류시 데이터 유효성을 판단하는 방법을 보여주는 순서도;
도 5b는 도 5a의 데이터의 유효성 평가 방법을 간략히 보여주는 순서도;
도 6은 본 발명의 상보 데이터 세그먼트들의 유효성을 판단하기 위한 방법을 보여주는 회로도;
도 7a는 본 발명의 프로그램 데이터 재배열의 다른 실시예를 간략히 보여주는 도면;
도 7b는 본 발명의 프로그램 데이터 재배열의 또 다른 실시예를 간략히 보여주는 도면;
도 8은 본 발명에 따른 프로그램 데이터의 재배열에 따른 효과를 간략히 보여주는 표;
도 9는 본 발명에 따른 정보 처리 시스템의 구성을 보여주는 블록도.
*도면의 주요 부분에 대한 부호의 설명*
110 : 메모리 컨트롤러 111 : 에스램
112 : 프로세싱 유닛 113 : 호스트 인터페이스
114 : 에러 정정 블록 115 : 메모리 인터페이스
120 : 플래시 메모리 장치 121 : 셀 어레이
122 : 페이지 버퍼 300 : 정보 처리 시스템
310 : 플래시 메모리 시스템 320 : 모뎀
330 : 중앙처리장치 340 : 램
350 : 유저 인터페이스 360: 시스템 버스

Claims (21)

  1. 하나의 워드 라인에 연결되는 복수의 메모리 셀들을 복수의 페이지들로 프로그램하는 멀티 비트 플래시 메모리 장치의 데이터 관리 방법에 있어서:
    (a) 에러 검출용 부호 방식에 따라 재구성된 어느 하나의 페이지로 상기 복수의 메모리 셀들을 프로그램하는 단계; 그리고
    (b) 상기 프로그램하는 단계에서 오류 발생시, 상기 복수의 메모리 셀들로부터 독출된 상기 에러 검출용 부호를 이용하여 상기 어느 하나의 페이지의 유효성을 판단하는 단계를 포함하되,
    상기 복수의 메모리 셀들 중 상기 에러 검출용 부호가 프로그램되는 셀들 각각은 1-비트 데이터만이 저장되도록 상기 복수의 페이지들이 설정되는 데이터 관리 방법.
  2. 제 1 항에 있어서,
    상기 에러 검출용 부호는 프로그램 데이터 및 상기 프로그램 데이터의 반전된 데이터로 이루어진 상보 데이터를 포함하는 것을 특징으로 하는 데이터 관리 방법.
  3. 제 2 항에 있어서,
    상기 (b) 단계에서, 상기 복수의 메모리 셀들로부터 독출된 상기 상보 데이 터의 상보 관계를 검출하여 상기 어느 하나의 페이지의 유효성이 판단되는 것을 특징으로 하는 데이터 관리 방법.
  4. 제 3 항에 있어서,
    상기 상보 데이터는 상기 어느 하나의 페이지의 제 1 칼럼 어드레스 구간에 할당되며, 상기 제 1 칼럼 어드레스 구간에 인접한 제 2 칼럼 어드레스 구간은 소거 상태로 유지되는 것을 특징으로 하는 데이터 관리 방법.
  5. 제 4 항에 있어서,
    상기 복수의 페이지들 중 상기 어느 하나의 페이지를 제외한 페이지들 각각의 제 1 칼럼 어드레스 구간에는 소거 상태에 대응하는 데이터가 할당되는 것을 특징으로 하는 데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 제 1 칼럼 어드레스 구간과 상기 제 2 칼럼 어드레스 구간은 동일 크기를 갖는 것을 특징으로 하는 데이터 관리 방법.
  7. 제 6 항에 있어서,
    상기 복수의 페이지들 중 상기 어느 하나의 페이지를 제외한 또 다른 어느 하나의 페이지의 제 2 칼럼 어드레스 구간에는 또 다른 상보 데이터가 저장되도록 페이지가 구성되는 데이터 관리 방법.
  8. 제 2 항에 있어서,
    상기 (b) 단계는,
    상기 어느 하나의 페이지 데이터를 상기 복수의 메모리 셀들로부터 독출하는 단계;
    상기 독출된 어느 하나의 페이지 데이터로부터 상기 상보 데이터를 추출하는 단계; 및
    상기 상보 데이터에 포함되는 프로그램 데이터와 반전된 상기 프로그램 데이터의 상보 관계를 검출하는 단계를 포함하는 데이터 관리 방법.
  9. 제 8 항에 있어서,
    상기 상보 관계가 충족되지 않는 경우, 상기 어느 하나의 페이지를 무효로 판정하는 것을 특징으로 하는 데이터 관리 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 하나의 워드 라인에 연결되는 메모리 셀들을 복수의 페이지들로 프로그램하는 멀티 비트 플래시 메모리 장치; 및
    프로그램 데이터와 상기 프로그램 데이터의 반전된 데이터로 이루어진 상보 데이터를 어느 하나의 페이지에 할당하여 프로그램하도록 상기 멀티 비트 플래시 메모리 장치를 제어하고, 상기 어느 하나의 페이지의 프로그램 동작중 오류의 발생시 상기 메모리 셀들로부터 독출되는 상기 상보 데이터의 상보 관계를 검출하여 상기 어느 하나의 페이지의 유효성을 판단하는 모듈을 포함하는 메모리 시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020070087783A 2007-08-30 2007-08-30 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법 KR101393622B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070087783A KR101393622B1 (ko) 2007-08-30 2007-08-30 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법
US12/201,476 US7843732B2 (en) 2007-08-30 2008-08-29 Methods of operating multi-bit flash memory devices and related systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070087783A KR101393622B1 (ko) 2007-08-30 2007-08-30 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20090022435A KR20090022435A (ko) 2009-03-04
KR101393622B1 true KR101393622B1 (ko) 2014-05-13

Family

ID=40454279

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070087783A KR101393622B1 (ko) 2007-08-30 2007-08-30 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법

Country Status (2)

Country Link
US (1) US7843732B2 (ko)
KR (1) KR101393622B1 (ko)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US8156403B2 (en) 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) * 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
CN101715595A (zh) * 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8429493B2 (en) * 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
WO2009063450A2 (en) 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) * 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
KR101412974B1 (ko) * 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
JP2009294869A (ja) * 2008-06-04 2009-12-17 Toshiba Corp メモリシステム
US7924613B1 (en) * 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
KR101541736B1 (ko) 2008-09-22 2015-08-04 삼성전자주식회사 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR101543431B1 (ko) 2008-11-20 2015-08-11 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 액세스 방법
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8250417B2 (en) * 2009-01-14 2012-08-21 Micron Technology, Inc. Method for detecting flash program failures
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
JP5482275B2 (ja) * 2009-04-01 2014-05-07 セイコーエプソン株式会社 記憶装置、基板、液体容器、データ記憶部に書き込むべきデータをホスト回路から受け付ける方法、ホスト回路に対し電気的に接続可能な記憶装置を含むシステム
US8289788B2 (en) * 2009-04-01 2012-10-16 Seiko Epson Corporation System having a plurality of memory devices and data transfer method for the same
US8782326B2 (en) * 2009-04-01 2014-07-15 Seiko Epson Corporation Memory device and system including a memory device electronically connectable to a host circuit
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
KR101609367B1 (ko) 2009-06-29 2016-04-20 삼성전자주식회사 플래시 메모리 시스템 및 플래시 메모리의 프로그래밍 방법
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
JP5525605B2 (ja) * 2009-11-04 2014-06-18 株式会社日立製作所 フラッシュメモリモジュール
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
JP5556371B2 (ja) 2010-05-25 2014-07-23 セイコーエプソン株式会社 記憶装置、基板、液体容器、データ記憶部に書き込むべきデータをホスト回路から受け付ける方法、ホスト回路に対し電気的に接続可能な記憶装置を含むシステム
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US20120008414A1 (en) * 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8432732B2 (en) 2010-07-09 2013-04-30 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays
US8305807B2 (en) 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US8379454B2 (en) 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8726104B2 (en) 2011-07-28 2014-05-13 Sandisk Technologies Inc. Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
KR101979392B1 (ko) 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8824203B2 (en) 2012-07-13 2014-09-02 Micron Technology, Inc. Multiple step programming in a memory device
KR102005709B1 (ko) * 2012-10-22 2019-08-01 삼성전자 주식회사 메모리 장치 구동 방법 및 메모리 시스템
KR20150045747A (ko) * 2013-10-21 2015-04-29 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
TW201533657A (zh) * 2014-02-18 2015-09-01 Toshiba Kk 資訊處理系統及記憶體系統
US9696918B2 (en) 2014-07-13 2017-07-04 Apple Inc. Protection and recovery from sudden power failure in non-volatile memory devices
KR20170028670A (ko) * 2015-09-04 2017-03-14 에스케이하이닉스 주식회사 데이터 저장 장치 그리고 그것의 동작 방법
KR102438988B1 (ko) * 2016-04-07 2022-09-02 삼성전자주식회사 랜덤화 연산을 수행하는 불휘발성 메모리 장치
US9773529B1 (en) * 2016-06-16 2017-09-26 Cypress Semiconductor Corporation Methods and devices for reading data from non-volatile memory cells
US10095424B2 (en) 2016-08-04 2018-10-09 Intel Corporation Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
US10043573B2 (en) 2016-08-04 2018-08-07 Intel Corporation Apparatus and method for endurance friendly programming using lower voltage thresholds
US10083742B2 (en) * 2016-09-26 2018-09-25 Intel Corporation Method and apparatus for programming non-volatile memory using a multi-cell storage cell group to provide error location information for retention errors
CN108170554B (zh) * 2016-12-07 2021-11-23 北京兆易创新科技股份有限公司 一种nand的数据编码方法和装置
US10679712B2 (en) * 2017-12-21 2020-06-09 Cypress Semiconductor Corporation Non-volatile memory device and method of blank check
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020039311A1 (en) 2000-10-03 2002-04-04 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory
US20080049496A1 (en) 2006-08-22 2008-02-28 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3165101B2 (ja) 1998-03-05 2001-05-14 日本電気アイシーマイコンシステム株式会社 多値式半導体メモリ装置およびその不良救済方法
JP2000132995A (ja) 1998-10-26 2000-05-12 Nec Corp 半導体装置
JP2006048783A (ja) 2004-08-02 2006-02-16 Renesas Technology Corp 不揮発性メモリおよびメモリカード
KR100643287B1 (ko) 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020039311A1 (en) 2000-10-03 2002-04-04 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory
US20080049496A1 (en) 2006-08-22 2008-02-28 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array

Also Published As

Publication number Publication date
KR20090022435A (ko) 2009-03-04
US7843732B2 (en) 2010-11-30
US20090073762A1 (en) 2009-03-19

Similar Documents

Publication Publication Date Title
KR101393622B1 (ko) 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법
KR101563647B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
EP1934854B1 (en) Method of error correction in mbc flash memory
JP5749860B2 (ja) メモリデバイスおよびメモリデバイスのための構成方法
US8125825B2 (en) Memory system protected from errors due to read disturbance and reading method thereof
KR101655306B1 (ko) 메모리 시스템 및 그것의 액세스 방법
KR100889781B1 (ko) 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
KR101979734B1 (ko) 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
CN107608628B (zh) 闪存控制器
KR100902008B1 (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템
US20170039141A1 (en) Mapping table updating method, memory storage device and memory control circuit unit
US9478298B2 (en) Memory system and method of reading data thereof
US20160147651A1 (en) Data Integrity Enhancement to Protect Against Returning Old Versions of Data
EP1952290A2 (en) Probabilistic error correction in multi-bit-per-cell flash memory
US9824007B2 (en) Data integrity enhancement to protect against returning old versions of data
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US9239756B2 (en) Systems and methods for performing data recovery in a memory system
KR20190051570A (ko) 메모리 시스템 및 그것의 동작 방법
CN111858390A (zh) 存储器系统和操作存储器系统的方法
US20220171564A1 (en) Apparatus and method for maintaining data stored in a memory system
US11710515B2 (en) Memory system
CN116954491A (zh) 用于存储控制器的操作方法和包括存储控制器的存储系统
TWI805450B (zh) 借助侵害位元資訊來進行記憶體裝置的存取控制的方法、記憶體裝置以及記憶體裝置的控制器
KR102509549B1 (ko) 읽기 데이터 및 산포 정보를 수신하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법

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
LAPS Lapse due to unpaid annual fee