KR102106959B1 - 멀티 레벨 셀 비휘발성 메모리 시스템 - Google Patents

멀티 레벨 셀 비휘발성 메모리 시스템 Download PDF

Info

Publication number
KR102106959B1
KR102106959B1 KR1020130018804A KR20130018804A KR102106959B1 KR 102106959 B1 KR102106959 B1 KR 102106959B1 KR 1020130018804 A KR1020130018804 A KR 1020130018804A KR 20130018804 A KR20130018804 A KR 20130018804A KR 102106959 B1 KR102106959 B1 KR 102106959B1
Authority
KR
South Korea
Prior art keywords
data
page
bit
original
block
Prior art date
Application number
KR1020130018804A
Other languages
English (en)
Other versions
KR20140104829A (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 KR1020130018804A priority Critical patent/KR102106959B1/ko
Priority to US13/798,419 priority patent/US9318216B2/en
Publication of KR20140104829A publication Critical patent/KR20140104829A/ko
Application granted granted Critical
Publication of KR102106959B1 publication Critical patent/KR102106959B1/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
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

멀티 레벨 셀 비휘발성 메모리 시스템이 제공된다. 상기 멀티 레벨 셀 비휘발성 메모리 시스템은 제1 비트 데이터와 제2 비트 데이터를 저장하는 복수의 메모리 셀들, 및 상기 복수의 메모리 셀들을 페이지 단위로 프로그램하되, 원본 블록에 원본 데이터를 프로그램하고, 미러링 블록에 상기 원본 데이터와 동일한 사본 데이터를 프로그램하는 컨트롤러를 포함하고, 상기 원본 데이터의 제1 비트 페이지 데이터와 제2 비트 페이지 데이터는 동일한 워드라인에 연결된 메모리 셀들에 프로그램되고, 상기 사본 데이터의 제1 비트 페이지 데이터와 제2 비트 페이지 데이터는 서로 다른 워드라인에 연결된 메모리 셀들에 프로그램된다.

Description

멀티 레벨 셀 비휘발성 메모리 시스템{Multi level cell nonvolatile memory system}
본 발명은 멀티 레벨 셀 비휘발성 메모리 시스템에 관한 것이다.
메모리 장치는 크게 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분된다. 휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등을 포함한다. 비휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 비휘발성 메모리 장치는 플래시 메모리 장치, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 저항성 메모리 장치(예를 들어, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), RRAM(Resistive RAM)) 등을 포함한다.
본 발명이 해결하려는 과제는, 데이터의 신뢰성을 보장할 수 있는 멀티 레벨 셀 비휘발성 메모리 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 멀티 레벨 셀 비휘발성 메모리 시스템의 일 태양(aspect)은 각각 제1 비트 데이터와 제2 비트 데이터를 저장하는 복수의 메모리 셀들, 및 상기 복수의 메모리 셀들을 페이지 단위로 프로그램하되, 원본 블록에 원본 데이터를 프로그램하고, 미러링 블록에 상기 원본 데이터와 동일한 사본 데이터를 프로그램하는 컨트롤러를 포함하고, 상기 원본 데이터의 제1 비트 페이지 데이터와 제2 비트 페이지 데이터는 동일한 워드라인에 연결된 메모리 셀들에 프로그램되고, 상기 사본 데이터의 제1 비트 페이지 데이터와 제2 비트 페이지 데이터는 서로 다른 워드라인에 연결된 메모리 셀들에 프로그램된다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 블록의 제1 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 미러링 블록의 제2 페이지 어드레스부터 상기 사본 데이터를 프로그램하고, 상기 제1 페이지 어드레스와 상기 제2 페이지 어드레스는 서로 다를 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 블록의 최초 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 미러링 블록의 기준 페이지 오프셋 이후 페이지 어드레스부터 상기 사본 데이터를 프로그램할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 블록의 기준 페이지 오프셋 이후 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 미러링 블록의 최초 페이지 어드레스부터 상기 사본 데이터를 프로그램할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 데이터와 동일한 사본 데이터를 N개의 미러링 블록에 교번하여 순차적으로 프로그램하고, 상기 N은 2이상의 자연수일 수 있다.
본 발명의 몇몇 실시예에서, 상기 사본 데이터의 제1 비트 페이지 데이터는 상기 N개의 미러링 블록 중 제1 미러링 블록에 프로그램되고, 상기 사본 데이터의 제2 비트 페이지 데이터는 상기 N개의 미러링 블록 중 제2 미러링 블록에 프로그램될 수 있다.
본 발명의 몇몇 실시예에서, 상기 원본 데이터의 제1 비트 페이지 데이터와 상기 사본 데이터의 제1 비트 페이지 데이터는 동일한 값을 갖고, 상기 원본 데이터의 제2 비트 페이지 데이터와 상기 사본 데이터의 제2 비트 페이지 데이터는 동일한 값을 가질 수 있다.
본 발명의 몇몇 실시예에서, 상기 원본 블록과 상기 미러링 블록은 서로 다른 채널에 의해 연결될 수 있다.
본 발명의 몇몇 실시예에서, 상기 원본 블록과 상기 미러링 블록은 서로 다른 메모리 뱅크에 위치할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 제1 비트 페이지의 프로그램 동작을 수행하고, 이후 제2 비트 페이지의 프로그램 동작을 수행할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 데이터의 제1 비트 페이지 데이터가 손상된 경우, 상기 사본 데이터의 제1 비트 페이지 데이터를 이용하여 복원할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 데이터의 프로그램과 상기 사본 데이터의 프로그램을 모두 완료한 때에 호스트에 응답을 전송할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 데이터의 프로그램과 상기 사본 데이터의 프로그램 중 어느 하나를 완료한 때에 호스트에 응답을 전송할 수 있다.
상기 과제를 해결하기 위한 본 발명의 멀티 레벨 셀 비휘발성 메모리 시스템의 다른 태양은 동일한 워드라인에 연결되어 각각 제1 비트 데이터와 제2 비트 데이터를 저장하는 복수의 메모리 셀들, 및 상기 복수의 메모리 셀들을 페이지 단위로 프로그램하되, 제1 블록에 원본 데이터를 프로그램하고, 제2 블록에 상기 원본 데이터와 동일한 사본 데이터를 프로그램하는 컨트롤러를 포함하고, 상기 컨트롤러는 상기 제1 블록의 제1 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 제2 블록의 제2 페이지 어드레스부터 상기 사본 데이터를 프로그램하고, 상기 제1 페이지 어드레스와 상기 제2 페이지 어드레스는 서로 다르다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 제1 블록의 최초 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 제2 블록의 기준 페이지 오프셋 이후 페이지 어드레스부터 상기 사본 데이터를 프로그램할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 제1 블록의 기준 페이지 오프셋 이후 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 제2 블록의 최초 페이지 어드레스부터 상기 사본 데이터를 프로그램할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 제1 비트 페이지의 프로그램 동작을 수행하고, 이후 제2 비트 페이지의 프로그램 동작을 수행할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 원본 데이터의 제1 비트 페이지 데이터가 손상된 경우, 상기 사본 데이터의 제1 비트 페이지 데이터를 이용하여 복원할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제1 비트 페이지는 LSB 페이지이고, 상기 제2 비트 페이지는 MSB 페이지일 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 비휘발성 메모리 장치를 포함하는 메모리 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 비휘발성 메모리 장치의 메모리 블록을 설명하기 위한 회로도이다.
도 3은 도 1의 비휘발성 메모리 장치의 프로그램 상태를 설명하기 위한 도면이다.
도 4는 도 1의 비휘발성 메모리 장치의 프로그램 과정을 설명하기 위한 도면이다.
도 5는 도 1의 비휘발성 메모리 장치의 페어드 페이지 구조를 설명하기 위한 도면이다.
도 6은 본 발명의 제1 실시예에 따른 메모리 시스템의 데이터 미러링 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 제1 실시예에 따른 메모리 시스템의 데이터 복원 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 제1 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 제1 실시예에 따른 메모리 시스템의 동작 방법의 응용예를 설명하기 위한 흐름도이다
도 10은 본 발명의 제2 실시예에 따른 메모리 시스템의 데이터 미러링 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 제2 실시예에 따른 메모리 시스템의 데이터 복원 방법을 설명하기 위한 도면이다.
도 12는 본 발명의 제2 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 13은 본 발명의 제2 실시예에 따른 메모리 시스템의 동작 방법의 응용예를 설명하기 위한 흐름도이다
도 14는 도 1의 비휘발성 메모리 장치를 포함하는 메모리 시스템의 응용 예를 설명하기 위한 블록도이다.
도 15는 솔리드 스테이트 드라이브를 포함하는 사용자 장치를 설명하기 위한 블록도이다.
도 16은 메모리 카드를 포함하는 카드 시스템을 설명하기 위한 블록도이다.
도 17은 도 1 또는 도 14의 메모리 시스템을 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명하기로 한다.
도 1은 비휘발성 메모리 장치를 포함하는 메모리 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 메모리 시스템(100)은 메모리 컨트롤러(110) 및 비휘발성 메모리 장치(120)을 포함한다.
메모리 컨트롤러(110)는 호스트(host) 및 비휘발성 메모리 장치(120)에 연결된다. 메모리 컨트롤러(110)는 호스트의 요청에 응답하여 비휘발성 메모리 장치(120)를 액세스(access)하도록 구성된다. 예를 들어, 메모리 컨트롤러(110)는 비휘발성 메모리 장치(120)의 프로그램(program), 읽기(read), 소거(erase) 동작 등을 제어하도록 구성될 수 있다. 메모리 컨트롤러(110)는 호스트와 비휘발성 메모리 장치(120) 사이에서 인터페이스를 제공하도록 구성된다. 메모리 컨트롤러(110)는 비휘발성 메모리 장치(120)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.
예시적으로, 메모리 컨트롤러(110)는 램(Random Access Memory; RAM), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 메모리 인터페이스(memory interface)와 같은 잘 알려진 구성 요소들을 더 포함할 수 있다. 램(RAM)은 프로세싱 유닛의 동작 메모리, 호스트와 비휘발성 메모리 장치(120) 사이의 캐시 메모리, 그리고 호스트와 비휘발성 메모리 장치(120) 사이의 버퍼 메모리 중 적어도 하나로서 이용될 수 있다. 프로세싱 유닛은 메모리 컨트롤러(110)의 제반 동작을 제어한다. 호스트 인터페이스는 호스트와 메모리 컨트롤러(110) 사이에서 데이터 교환을 수행하기 위한 프로토콜을 포함한다. 예를 들어, 메모리 컨트롤러(110)는 USB(Universal Serial Bus) 프로토콜, MMC(multimedia card) 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-E(PCI-express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI(small computer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(호스트)와 통신하도록 구성될 수 있다. 메모리 인터페이스는 비휘발성 메모리 장치(120)와 인터페이싱한다.
비휘발성 메모리 장치(120)는 메모리 셀(memory cell; MC) 어레이를 포함한다. 메모리 셀 어레이는 복수의 행들과 복수의 열들로 배열된 메모리 셀들을 포함한다. 복수의 메모리 셀들은 복수의 메모리 블록들을 구성할 수 있다. 각각의 메모리 셀은 1-비트 데이터 또는 N-비트 데이터를 저장하도록 구성될 수 있다. 메모리 셀 어레이는 싱글 레벨 셀(single level cell; SLC), 멀티 레벨 셀(multi level cell; MLC) 또는 SLC와 MLC가 혼합된 형태로 구성될 수도 있다.
메모리 셀 어레이는 일반 데이터를 저장하기 위한 데이터 영역과, 데이터 영역과, 일반 데이터와 관련된 부가 정보(예를 들어, 플래그 정보, 에러 정정 코드, 디바이스 코드, 메이커 코드, 페이지 정보 등)를 저장하기 위한 스페어 영역으로 구분될 수 있다. 데이터 영역에 포함된 각각의 메모리 셀들은 1-비트 데이터 또는 N-비트 데이터를 저장하도록 구성될 수 있다. 스페어 영역에 포함된 각각의 메모리 셀들도 1-비트 데이터 또는 N-비트 데이터를 저장하도록 구성될 수 있다.
본 발명의 실시예에에서, 비휘발성 메모리 장치(120)는 멀티 레벨 셀 플래시 메모리 장치로 구성될 수 있다. 이하에서는 멀티 레벨 셀 플래시 메모리 장치를 설명함에 있어서, 2-비트 데이터를 저장하는 멀티 레벨 셀 플래시 메모리 장치를 예로 들어 설명하기로 한다. 본 발명은 하나의 MLC가 저장하는 비트의 수에 무관하게 적용될 수 있으나, 설명의 편의를 위하여 2-비트 데이터를 저장하는 경우에 대하여 설명한다.
메모리 시스템(100)은 오류 정정 블록을 추가적으로 포함하도록 구성될 수 있다. 오류 정정 블록은 오류 정정 코드(ECC)를 이용하여 비휘발성 메모리 장치(120)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성될 수 있다. 예를 들어, 오류 정정 블록은 메모리 컨트롤러(110)의 구성 요소로서 제공될 수 있다. 오류 정정 블록은 비휘발성 메모리 장치(120)의 구성 요소로서 제공될 수도 있다.
메모리 컨트롤러(110) 및 비휘발성 메모리 장치(120)는 하나의 반도체 장치로 집적될 수 있다. 예를 들어, 메모리 컨트롤러(110) 및 비휘발성 메모리 장치(120)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들어, 메모리 컨트롤러(110) 및 비휘발성 메모리 장치(120)는 하나의 반도체 장치로 집적되어 PC 카드(personal computer memory card international association; PCMCIA), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
메모리 컨트롤러(110) 및 비휘발성 메모리 장치(120)는 하나의 반도체 장치로 집적되어 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 구성할 수 있다. 솔리드 스테이트 드라이브는 반도체 메모리에 데이터를 저장하도록 구성되는 저장 장치를 포함할 수 있다. 메모리 시스템(100)이 솔리드 스테이트 드라이브로 이용되는 경우, 메모리 시스템(100)에 연결된 호스트의 동작 속도는 획기적으로 개선될 수 있다.
다른 예로서, 메모리 시스템(100)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공될 수 있다.
또한, 비휘발성 메모리 장치(120) 또는 메모리 시스템(100)은 다양한 형태들의 패키지로 실장될 수 있다. 예를 들어, 비휘발성 메모리 장치(120) 또는 메모리 시스템(100)은 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) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
도 2는 도 1의 비휘발성 메모리 장치의 메모리 블록을 설명하기 위한 회로도이다.
도 2를 참조하면, 메모리 블록을 구성하는 메모리 셀들은 낸드 스트링(nand string) 구조를 가질 수 있다. 도 2에 도시된 낸드 스트링 구조는 데이터 영역에 포함되는 메모리 셀들은 물론, 스페어 영역에 포함되는 메모리 셀들에도 적용될 수 있다.
메모리 블록은 복수의 열들 또는 비트 라인들(BL0∼BLm-1)에 각각 대응되는 복수의 스트링들을 포함한다. 각각의 스트링은 스트링 선택 트랜지스터(SST), 복수 개의 메모리 셀들(MC0∼MCn-1), 및 접지 선택 트랜지스터(GST)를 포함한다. 각각의 스트링에서, 스트링 선택 트랜지스터(SST)의 드레인은 대응하는 비트 라인에 연결되고, 접지 선택 트랜지스터(GST)의 소오스는 공통 소오스 라인(CSL)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)의 소오스와 접지 선택 트랜지스터(GST)의 드레인 사이에는 복수 개의 메모리 셀들(MC0∼MCn-1)이 직렬 연결될 수 있다. 동일한 행에 배열되는 메모리 셀들의 게이트는 대응되는 워드라인(WL0∼WLn-1)과 공통으로 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL)을 통해 인가되는 전압에 의해 제어되고, 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)을 통해 인가되는 전압에 의해 제어될 수 있다. 메모리 셀들(MC0∼MCn-1)은 대응하는 워드 라인(WL0∼WLn-1)을 통해 인가되는 전압에 의해서 제어될 수 있다. 각각의 워드 라인(WL0∼WLn-1)에 접속되는 메모리 셀들은 하나의 페이지 또는 복수 개의 페이지에 해당하는 데이터를 저장할 수 있다.
비휘발성 메모리 장치(120)는 낸드형 플래시 메모리 장치로 제공될 수 있다. 낸드형 플래시 메모리 장치의 프로그램(program) 또는 읽기(read) 동작은 페이지 단위로 수행되고, 프로그램된 데이터의 소거(erase) 동작은 복수 개의 페이지를 포함하는 블록 단위로 수행된다. 프로그램 동작시 할당되는 페이지 어드레스(page address)는 워드라인 방향으로 연속적으로 할당될 수도 있고, 비연속적으로 할당될 수 있다. 각각의 페이지에 대한 프로그램 동작 또는 소거 동작과 관련된 정보는 스페어 영역(또는 데이터 영역의 일부 영역)에 할당된 메모리 셀들에 저장될 수 있다. N-비트 데이터가 저장되는 MLC의 경우, 각각의 비트에 대한 프로그램 동작이 최대 N회까지 각각 독립적으로 수행될 수 있다. 각각의 프로그램 동작은 복수 개의 프로그램 루프들로 구성될 수 있다.
본 발명의 실시예에서, 비휘발성 메모리 장치(120)는 하나의 메모리 셀에 2-비트(또는 그 이상의 비트) 데이터를 저장하는데, 이 중 하위 비트를 LSB(Least Significant Bit)라고 하며, 상위 비트를 MSB(Most Significant Bit)라고 한다. LSB와 MSB는 동일한 워드라인에 연결되는 동일한 메모리 셀에 프로그램된다. 이 경우, 하위 비트를 프로그램하거나 읽는 경우에는 LSB 페이지가 되고, 상위 비트를 프로그램하거나 읽는 경우에는 MSB 페이지가 된다. 2-비트 데이터는 2개의 서로 다른 페이지를 구성하므로, LSB 페이지와 MSB 페이지는 서로 다른 페이지 어드레스에 의하여 프로그램된다.
도 3은 도 1의 비휘발성 메모리 장치의 프로그램 상태를 설명하기 위한 도면이다. 도 3은 2-비트 데이터를 저장하는 MLC 플래시 메모리 장치의 셀 산포를 나타낸다. 그러나, 이는 본 발명이 적용되는 일 예로서, 도 3에 도시된 셀 산포는 다양한 형태로 변형될 수 있다.
도 3을 참조하면, 메모리 셀은 “E(Erase)”, “P(Program)1”, “P2”, “P3” 중 어느 하나의 프로그램 상태를 가질 수 있다. 2-비트 MLC에 저장 가능한 데이터 값 중, “E” 상태는 “11”의 데이터 값에 대응되고, “P1”의 프로그램 상태는 “10”의 데이터 값에 대응되고, “P2”의 프로그램 상태는 “01”의 데이터 값에 대응되고, “P3”의 프로그램 상태는 “00”의 데이터 값에 대응될 수 있다.
각각의 비트는 독립적으로 수행되는 페이지 프로그램 동작을 통해 독립적으로 프로그램될 수 있다. 각각의 프로그램 동작은 복수 개의 프로그램 루프들로 구성될 수 있다. 예를 들어, 2-비트 MLC의 경우, 2-비트 데이터 중 LSB는 LSB 페이지 프로그램 동작을 통해, MSB는 MSB 페이지 프로그램 동작을 통해 각각 독립적으로 프로그램될 수 있다.
도 4는 도 1의 비휘발성 메모리 장치의 프로그램 과정을 설명하기 위한 도면이다.
도 4를 참조하면, LSB 페이지의 프로그램 동작이 수행된 후에, LSB 페이지의 산포로부터 MSB 페이지의 프로그램 동작이 수행될 수 있다.
LSB 페이지 프로그램 동작에서는 LSB 데이터 값에 따라 메모리 셀의 LSB의 값만 "1" 또는 "0"의 값으로 프로그램된다. 이때, MSB는 소거 상태를 유지한다. 도 4에서, LSB가 "1"의 값으로 프로그램된 경우 프로그램 상태는 “E”로 도시하였다. 그리고, LSB가 "0"의 값으로 프로그램된 경우 프로그램 상태는 “P”로 도시하였다.
LSB 페이지 프로그램 동작이 완료되면, MSB 페이지 프로그램 동작이 수행될 수 있다. MSB 페이지 프로그램 동작에서는 MSB 데이터 값에 따라 메모리 셀의 MSB의 값이 "1" 또는 "0"의 값으로 프로그램된다. 이로써, 각각의 메모리 셀은 4 개의 프로그램 상태들 중 어느 하나의 상태를 갖게 된다. 메모리 셀의 데이터 값이 "11", “10”, “01”, “00”의 값 중 어느 값으로 프로그램되었는지 여부는 복수의 문턱 전압을 이용한 읽기 동작을 통해 인식될 수 있다.
도 5는 도 1의 비휘발성 메모리 장치의 페어드 페이지 구조를 설명하기 위한 도면이다.
도 5를 참조하면, 비휘발성 메모리 장치(120)의 각 메모리 블록은 복수의 메모리 셀들로 구성되는 복수의 페이지들을 포함할 수 있다. 예를 들어, 메모리 블록은 128개의 페이지들을 포함할 수 있으나, 이에 한정되는 것은 아니다. 본 발명의 실시예에서, 각 메모리 블록은 도 5에 도시된 페이지의 순서로 프로그램된다. 각 메모리 블록에서, LSB 페이지와 MSB 페이지는 페어드 페이지(paired page) 구조로 쌍을 이룬다. 이로써, 서로 다른 페이지 어드레스에 의해 프로그램된 LSB 페이지와 MSB 페이지가 페어드 페이지 구조로 연결될 수 있다. 페어드 페이지 구조를 이루는 LSB 페이지와 MSB 페이지는 동일한 워드라인에 연결되는 메모리 셀들에 프로그램된다.
각 메모리 블록에서, 최초 LSB 페이지(예를 들어, “0” 번지 LSB 페이지)는 1개의 페이지만큼 이격하여 위치하는 MSB 페이지와 쌍을 이룰 수 있고, 다음 LSB 페이지(예를 들어, “1, 3, 5, ... , 121, 123” 번지 LSB 페이지)는 2개의 페이지만큼 이격하여 위치하는 MSB 페이지와 쌍을 이룰 수 있고, 최종 LSB 페이지(예를 들어, “125” 번지 LSB 페이지)는 1개의 페이지만큼 이격하여 위치하는 MSB 페이지와 쌍을 이룰 수 있다.
최초 MSB 페이지(예를 들어, “2” 번지 MSB 페이지)는 1개의 페이지만큼 이격하여 위치하는 LSB 페이지와 쌍을 이룰 수 있고, 다음 MSB 페이지(예를 들어, “4, 6, ... , 122, 124, 126” 번지 MSB 페이지)는 2개의 페이지만큼 이격하여 위치하는 LSB 페이지와 쌍을 이룰 수 있고, 최종 MSB 페이지(예를 들어, “127” 번지 MSB 페이지)는 1개의 페이지만큼 이격하여 위치하는 LSB 페이지와 쌍을 이룰 수 있다.
본 발명의 실시예에서, 비휘발성 메모리 장치(120)는 LSB 페이지의 프로그램 동작이 수행되고, 이후 MSB 페이지의 프로그램 동작이 수행된다. 이 때문에, 메모리 셀에 MSB 페이지를 프로그램하는 중에, 갑작스런 전원 공급 중단(sudden power off; SPO) 또는 메모리 불량 등으로 인해 페일(fail) 발생한다면, 상기 프로그램 중인 MSB 페이지와 페어드 페이지 구조를 이루는 LSB 페이지의 데이터 값이 함께 손상(broken)될 수 있다. 페어드 페이지 구조를 이루는 LSB 페이지와 MSB 페이지는 동일한 워드라인에 연결되는 메모리 셀들에 프로그램되기 때문이다.
이를 해결하기 위하여, 종래에는 원본(original) 블록에 저장되는 원본 데이터를 미러링(mirroring)하여, 미러링 블록에 사본(copy) 데이터를 저장하는 방법을 사용하였다. 이에 따라, 원본 데이터와 동일한 사본 데이터가 미러링 블록에 프로그램된다. 이와 같은 데이터 미러링 동작을 수행하더라도, SPO 또는 메모리 불량 등으로 인해, 원본 블록에 MSB 페이지를 프로그램하는 동작과 미러링 블록에 MSB 페이지를 프로그램하는 동작에 동시에 페일이 발생할 수 있다. 이 경우, 미러링 블록의 프로그램 중인 MSB 페이지와 페어드 페이지 구조를 이루는 LSB 페이지의 데이터 값도 함께 손상된다. 따라서, 원본 블록의 손상된 LSB 페이지를 복원할 수 없다. 이를 회피하고자, 원본 데이터의 미러링 동작시, 사본 데이터를 저장하는 미러링 블록은 LSB 페이지만을 사용하는 방법을 취할 수 있다. 그러나, 이 경우 미러링 블록의 전체 영역을 사용할 수 없게 되어, WAI(Wear Acceleration Index)가 증가하게 되고, 플래시 메모리 장치의 수명을 짧게 만들 수 있다.
본 발명의 실시예에서는, 원본 데이터의 제1 비트 페이지 데이터와 제2 비트 페이지 데이터는 동일한 워드라인에 연결된 메모리 셀들에 프로그램되지만, 사본 데이터의 제1 비트 페이지 데이터와 제2 비트 페이지 데이터는 서로 다른 워드라인에 연결된 메모리 셀들에 프로그램되도록 한다. 원본 데이터의 제1 비트 페이지와 사본 데이터의 제1 비트 페이지 데이터, 그리고 원본 데이터의 제2 비트 페이지와 사본 데이터의 제2 비트 페이지 데이터는 각각 동일한 값을 가진다. 제1 비트 페이지의 데이터는 원본 블록의 LSB 페이지의 데이터에 대응되고, 제2 비트 페이지의 데이터는 원본 블록의 MSB 페이지의 데이터에 대응될 수 있다. 이에 따라, 메모리 셀에 프로그램 동작 중에 SPO 또는 메모리 불량 등으로 인해 페일이 발생하여, 원본 블록의 MSB 페이지와 대응되는 미러링 블록의 페이지가 손상되더라도, 원본 블록의 LSB 페이지와 대응되는 미러링 블록의 페이지는, 이와 페어드 페이지 구조로 연결되지 않기 때문에 손상되지 않게 된다. 그리고, 상기 손상되지 않은 페이지를 이용하여 원본 블록의 LSB 페이지를 복원할 수 있다.
도 6은 본 발명의 제1 실시예에 따른 메모리 시스템의 데이터 미러링 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 본 발명의 제1 실시예에서, 메모리 컨트롤러(110)는 원본 블록의 원본 데이터와 동일한 사본 데이터를 미러링 블록에 프로그램한다. 메모리 컨트롤러(110)는 호스트의 요청에 응답하여, 원본 데이터의 LSB 페이지 프로그램 또는 MSB 페이지 프로그램을 수행할 수 있다. 메모리 컨트롤러(110)는 이와 동시에, 사본 데이터의 LSB 페이지 프로그램 또는 MSB 페이지 프로그램을 수행할 수 있다.
메모리 컨트롤러(110)는 원본 블록의 제1 페이지 어드레스부터 데이터를 프로그램하고, 미러링 블록의 제2 페이지 어드레스부터 데이터를 프로그램할 수 있다. 제1 페이지 어드레스와 제2 페이지 어드레스는 서로 다를 수 있다. 예시적으로, 메모리 컨트롤러(110)는 원본 블록의 최초 페이지 어드레스부터 데이터를 프로그램하고, 미러링 블록의 기준 페이지 오프셋(offset) 이후 페이지 어드레스부터 데이터를 프로그램할 수 있다. 또는, 메모리 컨트롤러(110)는 원본 블록의 기준 페이지 오프셋 이후 페이지 어드레스부터 데이터를 프로그램하고, 미러링 블록의 최초 페이지 어드레스부터 데이터를 프로그램할 수도 있다. 상기 기준 페이지 오프셋은 미리 정해질 수 있다.
도 6은 기준 페이지 오프셋이 1개의 페이지인 경우, 즉 첫 번째 원본 블록의 “0” 번지 LSB 페이지를 비우고, “1” 번지 LSB 페이지부터 데이터를 프로그램하는 경우를 도시한다. 미러링 블록은 최초 페이지 어드레스인 “0” 번지 LSB 페이지부터 데이터가 프로그램된다. 이와 같은 기준 페이지 오프셋의 조정은 첫 번째 원본 블록에 대해서만 수행될 수 있다. 첫 번째 원본 블록 이후에 프로그램되는 원본 블록들은, 앞서 수행된 기준 페이지 오프셋의 영향을 받게 되므로, 추가적인 기준 페이지 오프셋의 조정은 요구되지 않는다.
원본 블록(BLKi)에는 “D0~D127”의 데이터 값들이 프로그램될 수 있다. 미러링 블록(BLKj-1~BLKj)에도 “D0~D127”의 데이터 값들이 프로그램될 수 있다. 첫 번째 원본 블록의 “0” 번지 LSB 페이지를 비우고 데이터를 프로그램하였으므로, 미러링 블록에서는 “D0”의 데이터 값과, “D1~D127”의 데이터 값들은 서로 다른 블록(BLKj-1~BLKj)에 프로그램될 수 있다
도 6에 도시된 바와 같이, “D0”의 데이터 값은, 원본 블록(BLKi)에서는 LSB 페이지 프로그램 동작에 의해 “0” 번지 LSB 페이지로 프로그램되고, 미러링 블록(BLKj-1)에서는 MSB 페이지 프로그램 동작에 의해 “127” 번지 MSB 페이지로 프로그램될 수 있다. “D2”의 데이터 값은, 원본 블록(BLKi)에서는 MSB 페이지 프로그램 동작에 의해 “2” 번지 MSB 페이지로 프로그램되고, 미러링 블록(BLKj)에서는 LSB 페이지 프로그램 동작에 의해 “1” 번지 LSB 페이지로 프로그램될 수 있다. “D1, D126”의 데이터 값을 제외하고는, 동일한 데이터 값이, 원본 블록에서는 LSB 페이지 또는 MSB 페이지로 프로그램되고, 이와 반대로 미러링 블록에서는 MSB 페이지 또는 LSB 페이지로 프로그램될 수 있다.
도 7은 본 발명의 제1 실시예에 따른 메모리 시스템의 데이터 복원 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 예시적으로, “D4”의 데이터 값을 프로그램하는 중에 SPO 또는 메모리 불량 등으로 인해 페일이 발생한 경우를 가정할 수 있다. 이 때, 원본 블록 또는 미러링 블록에 프로그램 중인 “D4”의 데이터 값이 손상될 수 있다. 원본 블록(BLKi)의 “D4”의 데이터는 “4” 번지 MSB 페이지로 프로그램 중이었으므로, 이와 쌍을 이루는 “1” 번지 LSB 페이지의 “D1”의 데이터 값도 함께 손상될 수 있다. 그러나, 미러링 블록(BLKj)의 “D4”의 데이터는 “3” 번지 LSB 페이지로 프로그램 중이었고, “D1”의 데이터는 이와 쌍을 이루지 않는 “0” 번지 LSB 페이지로 프로그램되었으므로, 손상되지 않게 된다. 따라서, 메모리 컨트롤러(111)는 미러링 블록(BLKj)의 손상되지 않은 “0” 번지 LSB 페이지를 이용하여 원본 블록(BLKi)의 “1” 번지 LSB 페이지를 복원할 수 있다.
예시적으로, “D127”의 데이터 값을 프로그램하는 중에 SPO 또는 메모리 불량 등으로 인해 페일이 발생한 경우도 가정할 수 있다. 이 때, 원본 블록 또는 미러링 블록에 프로그램 중인 “D127”의 데이터 값이 손상될 수 있다. 원본 블록(BLKi)의 “D127”의 데이터는 “127” 번지 MSB 페이지로 프로그램 중이었으므로, 이와 쌍을 이루는 “125” 번지 LSB 페이지의 “D125”의 데이터 값도 함께 손상될 수 있다. 그러나, 미러링 블록(BLKj)의 “D127”의 데이터는 “126” 번지 MSB 페이지로 프로그램 중이었고, “D125”의 데이터는 이와 쌍을 이루지 않는 “124” 번지 MSB 페이지로 프로그램되었으므로, 손상되지 않게 된다. “126” 번지 MSB 페이지와 쌍을 이루는 “123” 번지 LSB 페이지의 “D124”의 데이터가 손상될 수 있으나, 이는 이미 프로그램된 데이터이므로 문제되지 않는다. 따라서, 메모리 컨트롤러(110)는 미러링 블록(BLKj)의 손상되지 않은 “124” 번지 MSB 페이지를 이용하여 원본 블록(BLKi)의 “125” 번지 LSB 페이지를 복원할 수 있다.
도 8은 본 발명의 제1 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다. 앞서 설명한 내용과 중복되는 내용에 관하여는 상세한 설명은 생략하기로 한다.
도 8을 참조하면, 먼저 메모리 컨트롤러(110)는 호스트로부터 쓰기 위한 데이터를 수신한다(S11).
이어서, 메모리 컨트롤러(110)는 원본 블록과 미러링 블록의 페이지 오프셋을 조정하여, 원본 데이터와 사본 데이터를 프로그램한다(S12). 이 때, 메모리 컨트롤러(110)는 프로그램 동작의 병렬성을 높여 성능을 향상시키기 위해서, 원본 블록과 미러링 블록으로 서로 다른 채널에 의해 연결되는 메모리 블록을 사용할 수 있다. 또는, 메모리 컨트롤러(110)는 원본 블록과 미러링 블록으로 서로 다른 메모리 뱅크의 블록을 사용할 수 있다. 페이지 오프셋을 조정하는 것은, 도 6을 참조하여 설명한 바와 같다.
이어서, 메모리 컨트롤러(110)는 원본 데이터의 프로그램과 사본 데이터의 프로그램이 완료되었는지 판단한다(S13). 이어서, 메모리 컨트롤러(110)는 원본 데이터의 프로그램과 사본 데이터의 프로그램이 모두 완료된 경우, 호스트에 프로그램이 완료되었음을 응답한다(S14). 한편, 메모리 컨트롤러(110)는 원본 데이터의 프로그램과 사본 데이터의 프로그램이 모두 완료되지 않은 경우, S13의 단계를 반복하여 수행한다.
도 9는 본 발명의 제1 실시예에 따른 메모리 시스템의 동작 방법의 응용예를 설명하기 위한 흐름도이다. 설명의 편의를 위해, 도 8과 차이점을 중점으로 하여 설명하기로 한다.
도 9를 참조하면, 메모리 컨트롤러(110)는 도 8과 달리 원본 데이터의 프로그램 또는 사본 데이터의 프로그램이 완료되었는지 판단한다(S23). 이어서, 메모리 컨트롤러(110)는 원본 데이터와 사본 데이터 중 어느 하나의 프로그램이라도 완료된 경우, 호스트에 프로그램이 완료되었음을 응답한다(S24). 한편, 메모리 컨트롤러(110)는 원본 데이터의 프로그램 또는 사본 데이터의 프로그램이 완료되지 않은 경우, S23의 단계를 반복하여 수행한다.
도 10은 본 발명의 제2 실시예에 따른 메모리 시스템의 데이터 미러링 방법을 설명하기 위한 도면이다.
도 10을 참조하면, 본 발명의 제2 실시예에서, 메모리 컨트롤러(110)는 원본 블록의 원본 데이터와 동일한 사본 데이터를 미러링 블록에 프로그램한다. 원본 블록과 미러링 블록의 개수는 1:N의 비율을 가질 수 있다. N은 2 이상의 자연수일 수 있다. 메모리 컨트롤러(110)는 호스트의 요청에 응답하여, 원본 데이터의 LSB 페이지 프로그램 또는 MSB 페이지 프로그램을 수행할 수 있다. 메모리 컨트롤러(110)는 이와 동시에, 사본 데이터의 LSB 페이지 프로그램 또는 MSB 페이지 프로그램을 수행할 수 있다.
메모리 컨트롤러(110)는 하나의 원본 블록의 원본 데이터에 대응되는 사본 데이터를, N개의 미러링 블록들에 나누어 프로그램할 수 있다. 사본 데이터의 제1 비트 페이지 데이터는 N개의 미러링 블록들 중 제1 미러링 블록(BLKj)에 프로그램되고, 사본 데이터의 제2 비트 페이지 데이터는 N개의 미러링 블록들 중 제2 미러링 블록(BLKk)에 프로그램될 수 있다.
도 10은 원본 블록과 미러링 블록의 개수가 1:2의 비율을 갖는 경우를 도시한다. 원본 블록(BLKi)에는 “D0~D127”의 데이터 값들이 프로그램될 수 있다. 제1 미러링 블록(BLKj)에는 “D0, D2, ... D124, D126”의 데이터 값들이 프로그램될 수 있다. 제2 미러링 블록(BLKk)에는 “D1, D3, ... , D125, D127”의 데이터 값들이 프로그램될 수 있다.
도 10에 도시된 바와 같이, “D0”의 데이터 값과 “D1”의 데이터 값은 제1 미러링 블록(BLKj)과 제2 미러링 블록(BLKk)의 “0” 번지 LSB 페이지로 각각 프로그램될 수 있다. “D2”의 데이터 값과 “D3”의 데이터 값은 제1 미러링 블록(BLKj)과 제2 미러링 블록(BLKk)의 “1” 번지 LSB 페이지로 각각 프로그램될 수 있다. “D4”의 데이터 값과 “D5”의 데이터 값은 제1 미러링 블록(BLKj)과 제2 미러링 블록(BLKk)의 “2” 번지 MSB 페이지로 각각 프로그램될 수 있다. 이와 같이, 메모리 컨트롤러(110)는 제1 미러링 블록(BLKj)과 제2 미러링 블록(BLKk)에 교번하여(alternately) “D0~D127”의 데이터 값들을 순차적으로 프로그램할 수 있다.
도 11은 본 발명의 제2 실시예에 따른 메모리 시스템의 데이터 복원 방법을 설명하기 위한 도면이다.
도 11을 참조하면, 예시적으로, “D6”의 데이터 값을 프로그램하는 중에 SPO 또는 메모리 불량 등으로 인해 페일이 발생한 경우를 가정할 수 있다. 이 때, 원본 블록 또는 미러링 블록에 프로그램 중인 “D6”의 데이터 값이 손상될 수 있다. 원본 블록(BLKi)의 “D6”의 데이터는 “6” 번지 MSB 페이지로 프로그램 중이었으므로, 이와 쌍을 이루는 “3” 번지 LSB 페이지의 “D3”의 데이터 값도 함께 손상될 수 있다. 그러나, 미러링 블록들에서 “D6”의 데이터는 제1 미러링 블록(BLKj)의 “3” 번지 LSB 페이지로 프로그램 중이었고, “D3”의 데이터는 이와 쌍을 이루지 않는 제2 미러링 블록(BLKk)의 “1” 번지 LSB 페이지로 프로그램되었으므로, 손상되지 않게 된다. 따라서, 메모리 컨트롤러(110)는 제2 미러링 블록(BLKk)의 손상되지 않은 “1”번지 LSB 페이지를 이용하여, 원본 블록(BLKi)의 “3” 번지 LSB 페이지를 복원할 수 있다.
예시적으로, “D8”의 데이터 값을 프로그램하는 중에 SPO 또는 메모리 불량 등으로 인해 페일이 발생한 경우도 가정할 수 있다. 이 때, 원본 블록 또는 미러링 블록에 프로그램 중인 “D8”의 데이터 값이 손상될 수 있다. 원본 블록(BLKi)의 “D8”의 데이터는 “8” 번지 MSB 페이지로 프로그램 중이었으므로, 이와 쌍을 이루는 “5” 번지 LSB 페이지의 “D5”의 데이터 값도 함께 손상될 수 있다. 그러나, 미러링 블록들에서, “D8”의 데이터는 제1 미러링 블록(BLKj)의 “4” 번지 MSB 페이지로 프로그램 중이었고, “D5”의 데이터는 이와 쌍을 이루지 않는 제2 미러링 블록(BLKk)의 “2” 번지 MSB 페이지로 프로그램되었으므로, 손상되지 않게 된다. 제1 미러링 블록(BLKj)에서, “4” 번지 MSB 페이지와 쌍을 이루는 “1” 번지 MSB 페이지의 “D2”의 데이터가 손상될 수 있으나, 이는 이미 프로그램된 데이터이므로 문제되지 않는다. 따라서, 메모리 컨트롤러(111)는 제2 미러링 블록(BLKk)의 손상되지 않은 “2” 번지 MSB 페이지를 이용하여 원본 블록(BLKi)의 “5” 번지 LSB 페이지를 복원할 수 있다.
도 12는 본 발명의 제2 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다. 앞서 설명한 내용과 중복되는 내용에 관하여는 상세한 설명은 생략하기로 한다.
도 12를 참조하면, 먼저 메모리 컨트롤러(110)는 호스트로부터 쓰기 위한 데이터를 수신한다(S31).
이어서, 메모리 컨트롤러(110)는 원본 블록과 미러링 블록의 개수의 비율에 따라, 원본 데이터와 사본 데이터를 프로그램한다(S32). 이 때, 메모리 컨트롤러(110)는 프로그램 동작의 병렬성을 높여 성능을 향상시키기 위해서, 원본 블록과 미러링 블록으로 서로 다른 채널에 의해 연결되는 메모리 블록을 사용할 수 있다. 또는, 메모리 컨트롤러(110)는 원본 블록과 미러링 블록으로 서로 다른 메모리 뱅크의 블록을 사용할 수 있다. 원본 블록과 미러링 블록의 개수의 비율에 따라 프로그램하는 것은, 도 10을 참조하여 설명한 바와 같다.
이어서, 메모리 컨트롤러(110)는 원본 데이터의 프로그램과 사본 데이터의 프로그램이 완료되었는지 판단한다(S33). 이어서, 메모리 컨트롤러(110)는 원본 데이터의 프로그램과 사본 데이터의 프로그램이 완료된 경우, 호스트에 프로그램이 완료되었음을 응답한다(S34). 한편, 메모리 컨트롤러(110)는 원본 데이터의 프로그램과 사본 데이터의 프로그램이 완료되지 않은 경우, S33의 단계를 반복하여 수행한다.
도 13은 본 발명의 제2 실시예에 따른 메모리 시스템의 동작 방법의 응용예를 설명하기 위한 흐름도이다. 설명의 편의를 위해, 도 12와 차이점을 중점으로 하여 설명하기로 한다.
도 13을 참조하면, 메모리 컨트롤러(110)는 도 12와 달리 원본 데이터의 프로그램 또는 사본 데이터의 프로그램이 완료되었는지 판단한다(S43). 이어서, 메모리 컨트롤러(110)는 원본 데이터와 사본 데이터 중 어느 하나의 프로그램이라도 완료된 경우, 호스트에 프로그램이 완료되었음을 응답한다(S44). 한편, 메모리 컨트롤러(110)는 원본 데이터의 프로그램 또는 사본 데이터의 프로그램이 완료되지 않은 경우, S43의 단계를 반복하여 수행한다.
도 14는 도 1의 비휘발성 메모리 장치를 포함하는 메모리 시스템의 응용 예를 설명하기 위한 블록도이다. 설명의 편의를 위해, 도 1과 차이점을 중점으로 하여서 설명하기로 한다.
도 14를 참조하면, 메모리 시스템(200)은 메모리 컨트롤러(210) 및 비휘발성 메모리 장치(220)를 포함한다.
비휘발성 메모리 장치(220)는 복수의 비휘발성 메모리 칩들을 포함한다. 복수의 비휘발성 메모리 칩들은 복수의 그룹들로 분할될 수 있다. 복수의 비휘발성 메모리 칩들의 각 그룹은 하나의 공통 채널을 통해 메모리 컨트롤러(210)와 인터페이싱하도록 구성된다. 예를 들어, 복수의 비휘발성 메모리 칩들은 제1 내지 제l 채널들(CH1~CHl)을 통해 메모리 컨트롤러(210)와 인터페이싱할 수 있다.
각 비휘발성 메모리 칩은 도 1을 참조하여 설명된 비휘발성 메모리 장치(120)와 실질적으로 동일하게 구성된다.
도 14의 메모리 시스템(200)에서는, 하나의 채널에 복수의 비휘발성 메모리 칩들이 연결되는 것으로 도시되었으나, 하나의 채널에 하나의 비휘발성 메모리 칩이 연결되도록 변형될 수도 있다.
도 15는 솔리드 스테이트 드라이브를 포함하는 사용자 장치를 설명하기 위한 블록도이다.
도 15를 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다.
SSD(1200)는 SSD 컨트롤러(1210; SSD controller), 버퍼 메모리(1220; buffer), 비휘발성 메모리 장치(1230; NVM)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 인터페이싱을 제공하도록 구성된다. SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 명령어를 디코딩하여, 비휘발성 메모리 장치(1230)를 액세스한다.
버퍼 메모리(1220)에는 호스트(1100)로부터 수신된 쓰기 데이터 또는 비휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장되도록 구성된다. 버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다.
비휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 비휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 비휘발성 메모리 장치(1230)로는 낸드 플래시 메모리, PRAM, MRAM, ReRAM, FRAM, 노어 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되어 사용될 수도 있다. 비휘발성 메모리 장치(1230)는 도 1을 참조하여 설명한 비휘발성 메모리 장치(120)와 실질적으로 동일하게 구성될 수 있다.
도 16은 메모리 카드를 포함하는 카드 시스템을 설명하기 위한 블록도이다.
카드 시스템(2000)은 호스트(2100)와 메모리 카드(2200)를 포함한다.
호스트(2100)는 호스트 컨트롤러(2110; host controller) 및 호스트 접속 유닛(2120; host cnt)을 포함한다. 메모리 카드(2200)는 카드 접속 유닛(2210; card cnt), 카드 컨트롤러(2220; card controller), 비휘발성 메모리 장치(2230; NVM)를 포함한다.
호스트 접속 유닛(2120) 및 카드 접속 유닛(2210)은 복수의 핀으로 구성될 수 있다. 이들 핀에는 커맨드 핀, 데이터 핀, 클록 핀, 전원 핀 등이 포함될 수 있다. 핀의 수는 메모리 카드(2200)의 종류에 따라 상이할 수 있다.
호스트(2100)는 메모리 카드(2200)에 데이터를 쓰거나, 메모리 카드(2200)에 저장된 데이터를 읽도록 구성된다. 호스트 컨트롤러(2110)는 커맨드(CMD), 클록 신호(CLK), 데이터(DAT) 등을 호스트 접속 유닛(2120)을 통해 메모리 카드(2200)로 전송할 수 있다.
카드 컨트롤러(2220)는 카드 접속 유닛(2210)을 통해 수신된 커맨드에 응답하여, 데이터를 비휘발성 메모리 장치(2230)에 쓰거나, 데이터를 비휘발성 메모리 장치(2230)로부터 읽도록 구성된다. 비휘발성 메모리 장치(2230)는 도 1을 참조하여 설명한 비휘발성 메모리 장치(120)와 실질적으로 동일하게 구성될 수 있다.
도 17은 도 1 또는 도 14의 메모리 시스템을 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 17을 참조하면, 컴퓨팅 시스템(300)은 메모리 시스템(3100), 중앙 처리 장치(3200; CPU), 램(3300; RAM), 사용자 인터페이스(3400; user interface). 전원 공급 장치(3500; power supply)를 포함한다.
메모리 시스템(3100)은 시스템 버스(3600)를 통해서, 중앙 처리 장치(3200), 램(3300), 사용자 인터페이스(3400), 및 전원 공급 장치(3500)에 연결된다. 사용자 인터페이스(3400)을 통해 제공되거나, 중앙 처리 장치(3200)에 의해 처리된 데이터가 메모리 시스템(3100)에 저장될 수 있다.
도 17에서는, 비휘발성 메모리 장치(3120)는 메모리 컨트롤러(3110)를 통해 시스템 버스(3600)에 연결되는 것으로 도시되어 있으나, 비휘발성 메모리 장치(3120)는 시스템 버스(3600)에 직접 연결되도록 변형될 수 있다.
메모리 시스템(3100)은 도 1을 참조하여 설명한 메모리 시스템(100)과 실질적으로 동일하게 제공될 수 있다. 메모리 시스템(3100)은 도 14를 참조하여 설명한 메모리 시스템(200)으로 제공될 수도 있다. 한편, 컴퓨팅 시스템(3000)은 도 1 및 도 14를 참조하여 설명한 메모리 시스템들(100, 200)을 모두 포함하도록 구성될 수도 있다.
본 발명의 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 컴퓨터로 읽을 수 있는 기록 매체에 상주할 수도 있다. 예시적인 기록 매체는 프로세서에 커플링되며, 그 프로세서는 기록 매체로부터 정보를 판독할 수 있고 기록 매체에 정보를 기입할 수 있다. 다른 방법으로, 기록 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
110: 메모리 컨트롤러 120: 비휘발성 메모리 장치
210: 메모리 컨트롤러 220: 비휘발성 메모리 장치
1100: 호스트 1200: 솔리드 스테이트 드라이브
2100: 호스트 2200: 메모리 카드
3100: 메모리 시스템 3200: 중앙 처리 장치
3300: 램 3400: 사용자 인터페이스
3500: 전원 공급 장치

Claims (10)

  1. 각각 제1 비트 데이터와 제2 비트 데이터를 저장하는 복수의 메모리 셀들; 및
    상기 복수의 메모리 셀들을 페이지 단위로 프로그램하되, 원본 블록의 제1 및 제2 페이지에 원본 데이터 - 상기 원본 데이터는 원본의 제1 비트 페이지 데이터와 원본의 제2 비트 페이지 데이터를 포함함 - 를 프로그램하고, 적어도 하나의 미러링 블록에 상기 원본 데이터와 동일한 사본 데이터 - 상기 사본 데이터는 사본의 제1 비트 페이지 데이터와 사본의 제2 비트 페이지 데이터를 포함함 - 를 프로그램하는 컨트롤러를 포함하고,
    상기 원본 데이터의 상기 원본의 제1 비트 페이지 데이터와 상기 원본의 제2 비트 페이지 데이터는 동일한 워드라인에 연결된 메모리 셀들에 프로그램되고,
    상기 사본 데이터의 상기 사본의 제1 비트 페이지 데이터와 상기 사본의 제2 비트 페이지 데이터는 서로 다른 워드라인에 연결된 메모리 셀들에 프로그램되며,
    상기 제1 비트 페이지 데이터는 최소유효비트(Least Significant Bit, LSB) 데이터이고 상기 제2 비트 페이지 데이터는 최대유효비트(Most Significant Bit, MSB) 데이터인, 멀티 레벨 셀 비휘발성 메모리 시스템.
  2. 제1항에 있어서,
    상기 컨트롤러는 상기 원본 블록의 제1 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 미러링 블록의 제2 페이지 어드레스부터 상기 사본 데이터를 프로그램하고, 상기 제1 페이지 어드레스와 상기 제2 페이지 어드레스는 서로 다른, 멀티 레벨 셀 비휘발성 메모리 시스템.
  3. 제2항에 있어서,
    상기 컨트롤러는 상기 원본 블록의 최초 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 미러링 블록의 기준 페이지 오프셋 이후 페이지 어드레스부터 상기 사본 데이터를 프로그램하는, 멀티 레벨 셀 비휘발성 메모리 시스템.
  4. 제2항에 있어서,
    상기 컨트롤러는 상기 원본 블록의 기준 페이지 오프셋 이후 페이지 어드레스부터 상기 원본 데이터를 프로그램하고, 상기 미러링 블록의 최초 페이지 어드레스부터 상기 사본 데이터를 프로그램하는, 멀티 레벨 셀 비휘발성 메모리 시스템.
  5. 제1항에 있어서,
    상기 컨트롤러는 상기 원본 데이터와 동일한 사본 데이터를 N개의 미러링 블록에 교번하여 순차적으로 프로그램하고, 상기 N은 2이상의 자연수인, 멀티 레벨 셀 비휘발성 메모리 시스템.
  6. 제5항에 있어서,
    상기 사본 데이터의 제1 비트 페이지 데이터는 상기 N개의 미러링 블록 중 제1 미러링 블록에 프로그램되고, 상기 사본 데이터의 제2 비트 페이지 데이터는 상기 N개의 미러링 블록 중 제2 미러링 블록에 프로그램되는, 멀티 레벨 셀 비휘발성 메모리 시스템.
  7. 제1항에 있어서,
    상기 원본 데이터의 제1 비트 페이지 데이터와 상기 사본 데이터의 제1 비트 페이지 데이터는 동일한 값을 갖고, 상기 원본 데이터의 제2 비트 페이지 데이터와 상기 사본 데이터의 제2 비트 페이지 데이터는 동일한 값을 갖는, 멀티 레벨 셀 비휘발성 메모리 시스템.
  8. 제1항에 있어서,
    상기 컨트롤러는 제1 비트 페이지의 프로그램 동작을 수행하고, 이후 제2 비트 페이지의 프로그램 동작을 수행하는, 멀티 레벨 셀 비휘발성 메모리 시스템.
  9. 제8항에 있어서,
    상기 컨트롤러는 상기 원본 데이터의 제1 비트 페이지 데이터가 손상된 경우, 상기 사본 데이터의 제1 비트 페이지 데이터를 이용하여 복원하는, 멀티 레벨 셀 비휘발성 메모리 시스템.
  10. 각각 2 비트 정보를 저장하는 복수의 메모리 셀들; 및
    상기 복수의 메모리 셀들을 페이지 단위로 프로그램하되, 제1 블록에 원본 데이터를 프로그램하고, 제2 블록에 상기 원본 데이터와 동일한 사본 데이터를 프로그램하는 컨트롤러를 포함하고,
    상기 컨트롤러는 상기 제1 블록의 제1 페이지 어드레스부터 상기 원본 데이터를 연속적으로 프로그램하고, 상기 제2 블록의 제2 페이지 어드레스부터 상기 사본 데이터를 연속적으로 프로그램하고, 상기 제1 페이지 어드레스와 상기 제2 페이지 어드레스는 서로 달라, 상기 원본 데이터의 제1 비트 데이터 및 상기 사본 데이터의 대응하는 제1 비트 데이터는 상기 제1 페이지 어드레스 및 상기 제2 페이지 어드레스의 서로 다른 페이지 어드레스에 프로그램되는, 멀티 레벨 셀 비휘발성 메모리 시스템.
KR1020130018804A 2013-02-21 2013-02-21 멀티 레벨 셀 비휘발성 메모리 시스템 KR102106959B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130018804A KR102106959B1 (ko) 2013-02-21 2013-02-21 멀티 레벨 셀 비휘발성 메모리 시스템
US13/798,419 US9318216B2 (en) 2013-02-21 2013-03-13 Multilevel cell nonvolatile memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130018804A KR102106959B1 (ko) 2013-02-21 2013-02-21 멀티 레벨 셀 비휘발성 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20140104829A KR20140104829A (ko) 2014-08-29
KR102106959B1 true KR102106959B1 (ko) 2020-05-07

Family

ID=51208662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130018804A KR102106959B1 (ko) 2013-02-21 2013-02-21 멀티 레벨 셀 비휘발성 메모리 시스템

Country Status (2)

Country Link
US (1) US9318216B2 (ko)
KR (1) KR102106959B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104425020A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US10839919B2 (en) * 2018-11-26 2020-11-17 SK Hynix Inc. Memory system and method of operating the same
US11442666B2 (en) * 2020-11-17 2022-09-13 Western Digital Technologies, Inc. Storage system and dual-write programming method with reverse order for secondary block

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100198832A1 (en) 2007-10-25 2010-08-05 Kevin Loyd Jones Data processing apparatus and method of processing data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
KR100703806B1 (ko) 2006-02-16 2007-04-09 삼성전자주식회사 비휘발성 메모리, 이를 위한 데이터 유효성을 판단하는장치 및 방법
KR100736103B1 (ko) 2006-06-27 2007-07-06 삼성전자주식회사 비휘발성 메모리, 상기 비휘발성 메모리의 데이터 유효성을판단하는 장치 및 방법
KR100850515B1 (ko) 2007-01-24 2008-08-05 삼성전자주식회사 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
WO2008101316A1 (en) * 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
KR100889781B1 (ko) * 2007-04-30 2009-03-20 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
KR101300821B1 (ko) * 2007-07-04 2013-08-26 삼성전자주식회사 비휘발성 메모리의 데이터 손실을 방지하기 위한 장치 및방법
KR101270685B1 (ko) 2007-08-24 2013-06-03 삼성전자주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법
KR101541736B1 (ko) 2008-09-22 2015-08-04 삼성전자주식회사 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법
KR101626080B1 (ko) 2010-02-17 2016-06-01 삼성전자주식회사 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들
KR20110099570A (ko) * 2010-03-02 2011-09-08 삼성전자주식회사 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
TWI461913B (zh) * 2011-11-30 2014-11-21 Silicon Motion Inc 快閃記憶裝置及其資料讀取方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100198832A1 (en) 2007-10-25 2010-08-05 Kevin Loyd Jones Data processing apparatus and method of processing data

Also Published As

Publication number Publication date
KR20140104829A (ko) 2014-08-29
US20140208002A1 (en) 2014-07-24
US9318216B2 (en) 2016-04-19

Similar Documents

Publication Publication Date Title
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
US9588714B2 (en) Method of operating memory controller and data storage device including memory controller
KR102102224B1 (ko) 저장 장치 및 그것의 프로그램 방법
KR101893145B1 (ko) 메모리 시스템들 및 그것들의 블록 복사 방법들
US9715344B2 (en) Memory device and controlling method of the same
US9213598B2 (en) Nonvolatile memory device and method of operating the same
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR101678907B1 (ko) 리드 디스터번스를 줄일 수 있는 불휘발성 메모리 장치 및 그것의 읽기 방법
US10847247B2 (en) Storage device and method of operating the same
US20150332773A1 (en) Three-dimensional memory device and operating method of a storage device including the same
US11048585B2 (en) Storage device and operating method thereof
US11037639B2 (en) Memory controller and method of operating the same for processing the failed read operation
KR20180027660A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102102171B1 (ko) 멀티 레벨 셀 메모리 시스템
US10776027B2 (en) Storage device and method of operating the same
US10983726B2 (en) Storage device and method of operating the same for detecting last programmed page
US11461171B2 (en) Memory system and method of operating the same
US10650897B2 (en) Storage device and method for operating the same
US10910047B2 (en) Storage device and method of operating the same
KR102106959B1 (ko) 멀티 레벨 셀 비휘발성 메모리 시스템
US20130318419A1 (en) Flash memory system including read counter logic
US20200202915A1 (en) Storage device and method of operating the same
US11307783B2 (en) Memory controller performing recovery operation using recovery code and operating method thereof
US9236138B2 (en) Semiconductor memory device
US11640263B2 (en) Memory system and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant