KR100889781B1 - 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 - Google Patents

멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 Download PDF

Info

Publication number
KR100889781B1
KR100889781B1 KR20070042041A KR20070042041A KR100889781B1 KR 100889781 B1 KR100889781 B1 KR 100889781B1 KR 20070042041 A KR20070042041 A KR 20070042041A KR 20070042041 A KR20070042041 A KR 20070042041A KR 100889781 B1 KR100889781 B1 KR 100889781B1
Authority
KR
South Korea
Prior art keywords
data
memory
bit
memory device
flash memory
Prior art date
Application number
KR20070042041A
Other languages
English (en)
Other versions
KR20080097001A (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 KR20070042041A priority Critical patent/KR100889781B1/ko
Priority to US12/150,558 priority patent/US8031522B2/en
Priority to TW097115782A priority patent/TWI496275B/zh
Priority to CN2008100956128A priority patent/CN101303891B/zh
Priority to CN201310542391.5A priority patent/CN103632722B/zh
Publication of KR20080097001A publication Critical patent/KR20080097001A/ko
Application granted granted Critical
Publication of KR100889781B1 publication Critical patent/KR100889781B1/ko
Priority to US13/220,194 priority patent/US8223544B2/en
Priority to US13/550,000 priority patent/US8614914B2/en
Priority to US14/139,175 priority patent/US9030876B2/en
Priority to US14/491,156 priority patent/US9275742B2/en
Priority to US14/831,116 priority patent/US9460796B2/en

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
    • 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • 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
    • 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/5671Digital 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 trapping in an insulator
    • 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
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

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

Abstract

여기에는 각각이 멀티-비트 데이터를 저장하는 메모리 셀들을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법이 제공되며, 이 방법은 선택된 메모리 셀에 저장될 데이터가 최하위 데이터인 지의 여부를 판별하고, 상기 선택된 메모리 셀에 저장될 데이터가 최하위 데이터가 아닌 것으로 판별될 때, 상기 선택된 메모리 셀에 저장된 하위 데이터를 상기 멀티-비트 플래시 메모리 장치의 백업 메모리 블록으로 백업하는 것을 포함한다.

Description

멀티-비트 데이터를 저장하는 메모리 시스템, 그것의 프로그램 방법, 그것을 포함한 컴퓨팅 시스템{MEMORY SYSTEM STORING MULTI-BIT DATA, PROGRAM METHOD THEREOF, AND COMPUTING SYSTEM INCLUDING THE SAME}
도 1은 일반적인 페이지 단위 프로그램 방식에 따른 프로그램 방법을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 3 내지 도 5는 멀티-비트 플래시 메모리 장치의 다양한 페이지 단위 프로그램 방식들을 설명하기 위한 도면들이다.
도 6은 본 발명에 따른 메모리 시스템의 프로그램 동작을 설명하기 위한 흐름도이다.
도 7 및 도 8은 본 발명에 따른 메모리 시스템의 프로그램 동작들을 설명하기 위한 도면들이다.
도 9는 본 발명에 따른 메모리 시스템의 프로그램 동작시 데이터 백업 동작을 설명하기 위한 도면이다.
도 10은 페이지 오프셋 값들이 상이한 경우 본 발명에 따른 메모리 시스템의 프로그램 동작시 데이터 백업 동작을 설명하기 위한 도면이다.
도 11은 본 발명의 다른 실시예에 따른 메모리 시스템의 프로그램 동작을 설 명하기 위한 도면이다.
도 12는 상위 데이터의 프로그램 동작시 생기는 파워 페일로 인해 손실된 하위 데이터를 복원하는 동작을 설명하기 위한 흐름도이다.
도 13은 데이터 복원 동작에 따른 데이터 흐름을 보여주는 도면이다.
도 14는 본 발명의 메모리 시스템에 따른 프로그램 동작시 하위 데이터의 손실을 방지하는 동작들이 프로그램 데이터 타입에 따라 상이한 방식으로 수행됨을 설명하기 위한 흐름도이다.
도 15는 셀 당 3-비트 데이터를 저장하는 플래시 메모리 장치의 데이터 백업 동작을 설명하기 위한 도면이다.
도 16은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 17은 본 발명의 또 다른 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 플래시 메모리 장치 200 : 메모리 컨트롤러
210 : 중앙처리장치 220 : 메모리
230 : 버퍼 메모리 240 : 플래시 인터페이스
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치 및 그것을 포함한 메모리 시스템에 관한 것이다.
최근, 휘발성 메모리들과 불 휘발성 메모리들과 같은 저장 장치들의 응용들이 MP3 플레이어, PMP, 휴대전화, 노트북 컴퓨터, PDA, 등과 같은 모바일 기기들에 급속히 확산되고 있다. 그러한 모바일 기기들은 다양한 기능들(예를 들면, 동영상 재상 기능)을 제공하기 위해서 점차적으로 대용량의 저장 장치들을 필요로 하고 있다. 그러한 요구를 충족하기 위한 다양한 노력들이 행해져오고 있다. 그러한 노력들 중 하나로서 하나의 메모리 셀에 2-비트 데이터 또는 그 보다 많은 데이터 비트들을 저장하는 멀티-비트 메모리 장치가 제안되어 오고 있다. 하나의 메모리 셀에 멀티-비트 데이터를 저장하는 예시적인 멀티-비트 메모리 장치들이 U.S. Patent No. 6,122,188에 "NON-VOLATILE MEMORY DEVICE HAVING MULTI-BIT CELL STRUCTURE AND A METHOD OF PROGRAMMING SAME"라는 제목으로, U.S. Patent No. 6,075,734에 "INTEGRATED CIRCUIT MEMORY DEVICE FOR STORING A MULTI-BIT DATA AND A METHOD FOR READING STORED DATA IN THE SAME"라는 제목으로, 그리고 U.S. Patent No. 5,923,587에 "MULTI-BIT MEMORY CELL ARRAY OF A NON-VOLATILE SEMICONDUCTOR MEMORY DEVICE AND METHOD FOR DRIVING THE SAME"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
하나의 메모리 셀에 1-비트 데이터를 저장하는 경우, 메모리 셀은 2개의 문턱 전압 분포들 중 어느 하나에 속하는 문턱 전압을 갖는다. 즉, 메모리 셀은 데이터 '1'과 데이터 '0'을 각각 나타내는 2개의 상태들 중 하나를 갖는다. 이에 반해 서, 하나의 메모리 셀에 2-비트 데이터를 저장하는 경우, 메모리 셀은 4개의 문턱 전압 분포들 중 어느 하나에 속하는 문턱 전압을 갖는다. 즉, 하나의 메모리 셀은 데이터 '11', 데이터 '10', 데이터 '01', 그리고 데이터 '00'을 각각 나타내는 4개의 상태들 중 하나를 갖는다.
멀티-비트 데이터를 메모리 셀에 프로그램하는 방법은 다양하게 구현될 수 있다. 예를 들면, 메모리 셀들 각각에 저장되는 2개의 데이터 비트들은 각각 페이지 데이터(이하, LSB 데이터(또는, 하위 데이터) 및 MSB 데이터(또는, 상위 데이터)라 칭함)를 구성할 것이다. 이러한 경우, 먼저, LSB 데이터 비트가 메모리 셀에 프로그램되고 그 다음에 MSB 데이터 비트가 메모리 셀에 프로그램될 수 있다. 이하, 이러한 프로그램 방식을 페이지 단위 프로그램 방식이라 칭한다. 페이지 단위 프로그램 방식을 좀 더 구체적으로 설명하면 다음과 같다.
하나의 메모리 셀은 "11", "10", "00" 및 "01" 상태들 중 어느 하나를 갖도록 프로그램될 것이다. 편의상, "11", "10", "00" 및 "01" 상태들은 각각 ST0, ST1, ST2, ST3에 대응한다고 가정하자. "11" 상태를 갖는 메모리 셀은 소거된 메모리 셀이며, "10" 상태를 갖는 메모리 셀의 문턱 전압은 "11" 상태의 메모리 셀의 문턱 전압보다 높다. "00" 상태를 갖는 메모리 셀의 문턱 전압은 "10" 상태의 메모리 셀의 문턱 전압보다 높고, "01" 상태를 갖는 메모리 셀의 문턱 전압은 "00" 상태의 메모리 셀의 문턱 전압보다 높다. 이러한 조건 하에서, LSB 프로그램 동작이 수행되면, 도 1a에 도시된 바와 같이, 메모리 셀은 소거된 상태 또는 "10" 상태(ST1)를 갖는다. LSB 프로그램 동작 다음에 이어지는 MSB 프로그램 동작이 수행 되면, 도 1b에 도시된 바와 같이, "11" 상태를 갖는 메모리 셀은 소거된 상태 또는 "01" 상태(ST3)를 갖는 반면에, "10" 상태(ST1)의 메모리 셀은 "10" 상태 또는 "00" 상태(ST2)를 갖는다. 즉, LSB 데이터가 '1'일 때 메모리 셀은 01 상태로 프로그램되는 반면에, LSB 데이터가 '0'일 때 메모리 셀은 00 상태로 프로그램될 것이다. 멀티-비트 데이터를 프로그램하는 방식이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
멀티-비트 데이터를 저장할 때 한가지 문제점이 생길 수 있다. 좀 더 구체적으로 설명하면 다음과 같다.
설명의 편의상, 하나의 메모리 셀을 기준으로 2-비트 데이터를 저장하는 동작이 설명될 것이다. 앞서 설명된 바와 같이, 먼저, 하위 데이터 비트가 메모리 셀에 저장될 것이다. 그 다음에, 메모리 셀에 상위 데이터 비트가 저장될 것이다. 하위 데이터 비트가 메모리 셀에 프로그램되는 도중에 전원이 차단되는 경우, 파워-업시 마지막으로 프로그램된 페이지에 대한 프로그램 동작은 취소될 것이다. 이에 반해서, 상위 데이터 비트가 메모리 셀에 프로그램되는 도중에 전원이 차단된다고 가정하면, 이전에 저장된 하위 데이터 비트는 손실될 것이다. 이는 상위 데이터 비트의 프로그램 동작시 하위 데이터 비트에 대응하는 문턱 전압이 변화되기 때문이다.
따라서, 멀티-비트 데이터를 저장하는 플래시 메모리 장치에 있어서, 상위 데이터 비트(들)의 프로그램 동작 동안 생길 수 있는 파워 페일(power fail)로 인한 하위 데이터 비트(들)의 손실(손상)을 방지할 수 있는 기술이 절실히 요구되고 있다.
본 발명의 목적은 상위 데이터의 프로그램 페일로 인해 하위 데이터가 손실되는 것을 방지할 수 있는 메모리 시스템 및 그것의 프로그램 방법을 제공하는 것이다.
본 발명의 다른 목적은 파워 페일로 인해 손실된 하위 데이터를 복원할 수 있는 메모리 시스템 및 그것의 데이터 복원 방법을 제공하는 것이다.
본 발명의 예시적인 실시예들은 각각이 멀티-비트 데이터를 저장하는 메모리 셀들을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법을 제공하며, 이 방법은 선택된 메모리 셀에 저장될 데이터가 최하위 데이터인 지의 여부를 판별하고, 상기 선택된 메모리 셀에 저장될 데이터가 최하위 데이터가 아닌 것으로 판별될 때, 상기 선택된 메모리 셀에 저장된 하위 데이터를 상기 멀티-비트 플래시 메모리 장치의 백업 메모리 블록으로 백업하는 것을 포함한다.
예시적인 실시예에 있어서, 이 방법은 상기 하위 데이터를 상기 백업 메모리 블록으로 백업한 후, 상기 저장될 데이터를 상기 선택된 메모리 셀에 프로그램하는 것을 더 포함한다.
예시적인 실시예에 있어서, 이 방법은 상기 선택된 메모리 셀에 저장될 데이터가 최하위 데이터인 것으로 판별될 때, 백업 동작 없이 상기 저장될 데이터를 상기 선택된 메모리 셀에 프로그램하는 것을 더 포함한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, 그리고 상변환 메모리 장치 중 어느 하나를 포함한다.
예시적인 실시예에 있어서, 상기 메모리 셀들 각각은 2-비트 데이터를 저장한다.
예시적인 실시예에 있어서, 상기 백업 메모리 블록으로 백업된 하위 데이터는 최하위 데이터이다.
예시적인 실시예에 있어서, 상기 메모리 셀들 각각은 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장한다.
예시적인 실시예에 있어서, 상기 백업 메모리 블록으로 백업된 하위 데이터는 첫 번째 데이터 비트 내지 (M-1)번째 데이터 비트 모두 또는 적어도 하나를 포함한다.
본 발명의 다른 예시적인 실시예들은 각각이 멀티-비트 데이터를 저장하는 메모리 셀들을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법을 제공하며, 이 방법은 저장될 데이터를 선택된 메모리 셀에 프로그램하고, 상기 선택된 메모리 셀에 저장될 데이터가 하위 데이터인 지의 여부를 판별하고, 상기 선택된 메모리 셀에 저장될 데이터가 최하위 데이터인 것으로 판별될 때, 상기 선택된 메모리 셀에 저장된 하위 데이터를 상기 멀티-비트 플래시 메모리 장치의 백업 메모리 블록으로 백업하는 것을 포함한다.
예시적인 실시예에 있어서, 상기 메모리 셀들 각각은 2-비트 데이터를 저장 한다.
예시적인 실시예에 있어서, 상기 백업 메모리 블록으로 백업된 하위 데이터는 최하위 데이터이다.
예시적인 실시예에 있어서, 상기 메모리 셀들 각각은 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장한다.
예시적인 실시예에 있어서, 상기 백업 메모리 블록으로 백업된 하위 데이터는 첫 번째 데이터 비트 내지 (M-1)번째 데이터 비트 모두 또는 적어도 하나를 포함한다.
본 발명의 또 다른 예시적인 실시예들은 멀티-비트 데이터를 저장하는 메모리 셀들을 갖는 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법을 제공하며, 이 방법은 페이지 오프셋 값에 따라, 선택된 메모리 블록에 저장될 데이터가 백업될 데이터인 지의 여부를 판별하고, 판별 결과에 따라 상기 선택된 메모리 블록에 저장될 데이터의 시작 페이지를 기준으로 페이지 오프셋 값에 속하는 상기 선택된 메모리 블록의 하위 페이지 데이터를 백업 메모리 블록으로 백업한다.
예시적인 실시예에 있어서, 상기 선택된 메모리 블록에 저장될 데이터가 백업될 데이터로서 판별될 때, 상기 선택된 메모리 블록에 저장될 데이터의 시작 페이지를 기준으로 페이지 오프셋 값에 속하는 상기 선택된 메모리 블록의 하위 페이지 데이터는 상기 백업 메모리 블록으로 백업된다.
예시적인 실시예에 있어서, 상기 선택된 메모리 블록에 저장될 데이터가 백 업될 데이터가 아닌 것으로 판별될 때, 상기 저장될 데이터는 상기 선택된 메모리 블록에 프로그램된다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 낸드 플래시 메모리 장치를 포함한다.
예시적인 실시예에 있어서, 상기 멀티-비트 데이터는 M-비트 데이터(M은 2 또는 그 보다 큰 정수)이다.
예시적인 실시예에 있어서, 상기 메모리 블록들 각각은 하나의 페이지 오프셋 값을 갖는다.
예시적인 실시예에 있어서, 상기 메모리 블록들 각각은 적어도 2개의 페이지 오프셋 값들을 갖는다.
예시적인 실시예에 있어서, 파워-온시 상기 선택된 메모리 블록에 대한 파워 페일이 검출될 때, 상기 백업 메모리 블록에 백업된 데이터와 상기 선택된 메모리 블록의 유효 데이터는 여분의 메모리 블록으로 복사된다.
본 발명의 또 다른 예시적인 실시예들은 복수의 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치와; 그리고 상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 시작 어드레스를 기준으로 페이지 오프셋 값에 속하는 하위 데이터가 있는 지의 여부를 판별하도록 구성되며; 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 있는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 상기 메모리 블록들 중 여분의 메모리 블록으로 백업되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 메모리 시스템을 포함한다.
예시적인 실시예에 있어서, 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 없는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터가 선택된 메모리 블록에 프로그램되도록 상기 멀티-비트 플래시 메모리 장치를 제어한다.
예시적인 실시예에 있어서, 상기 메모리 셀들 각각은 2-비트 데이터를 저장한다.
예시적인 실시예에 있어서, 상기 백업 메모리 블록으로 백업된 하위 데이터는 최하위 데이터이다.
예시적인 실시예에 있어서, 상기 메모리 셀들 각각은 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장한다.
예시적인 실시예에 있어서, 상기 백업 메모리 블록으로 백업된 하위 데이터는 첫 번째 데이터 비트 내지 (M-1)번째 데이터 비트 모두 또는 적어도 하나를 포함한다.
예시적인 실시예에 있어서, 상기 메모리 시스템은 파워-온시 상기 선택된 메모리 블록에 대한 파워 페일이 생겼는 지의 여부를 검출하도록 구성된다.
예시적인 실시예에 있어서, 상기 선택된 메모리 블록에 대한 파워 페일이 검출될 때, 상기 메모리 컨트롤러는 상기 백업 메모리 블록에 백업된 데이터와 상기 선택된 메모리 블록의 유효 데이터가 여분의 메모리 블록으로 복사되도록 상기 멀티-비트 플래시 메모리 장치를 제어한다.
예시적인 실시예에 있어서, 상기 멀티-비트 플래시 메모리 장치는 낸드 플래시 메모리 장치를 포함한다.
예시적인 실시예에 있어서, 상기 멀티-비트 플래시 메모리 장치와 상기 메모리 컨트롤러는 OneNANDTM 플래시 메모리 장치를 구성한다.
본 발명의 또 다른 예시적인 실시예들은 복수의 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치와; 그리고 상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 어드레스와 페이지 오프셋 값을 더하여 얻어진 어드레스를 상기 프로그램될 데이터의 시작 어드레스로서 결정하도록 구성되는 메모리 시스템을 제공한다.
본 발명의 또 다른 예시적인 실시예들은 복수의 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치와; 그리고 상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터가 하위 데이터에 영향을 주는 적어도 하나의 페이지를 빈 페이지로 설정하도록 구성되는 메모리 시스템을 제공한다.
본 발명의 또 다른 예시적인 실시예들은 멀티-비트 플래시 메모리 장치와; 그리고 상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러 를 포함하며, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터인 지의 여부를 판별하도록 구성되며; 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터로 판별될 때, 상기 메모리 컨트롤러는 상기 메타 데이터의 어드레스와 페이지 오프셋 값을 더하여 얻어진 어드레스를 상기 메타 데이터의 시작 어드레스로서 결정하도록 구성되는 메모리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터가 아닌 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 시작 어드레스를 기준으로 페이지 오프셋 값에 속하는 하위 데이터가 있는 지의 여부를 판별한다.
예시적인 실시예에 있어서, 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 있는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 상기 메모리 블록들 중 여분의 메모리 블록으로 백업되도록 상기 멀티-비트 플래시 메모리 장치를 제어한다.
예시적인 실시예에 있어서, 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 없는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터가 선택된 메모리 블록에 프로그램되도록 상기 멀티-비트 플래시 메모리 장치를 제어한다.
본 발명의 또 다른 예시적인 실시예들은 멀티-비트 플래시 메모리 장치와; 그리고 상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터인 지의 여부를 판별하도록 구성되며; 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터로 판별될 때, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터가 하위 데이터에 영향을 주는 적어도 하나의 페이지를 빈 페이지로 설정하도록 구성되는 메모리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터가 아닌 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 시작 어드레스를 기준으로 페이지 오프셋 값에 속하는 하위 데이터가 있는 지의 여부를 판별한다.
예시적인 실시예에 있어서, 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 있는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 상기 메모리 블록들 중 여분의 메모리 블록으로 백업되도록 상기 멀티-비트 플래시 메모리 장치를 제어한다.
예시적인 실시예에 있어서, 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 없는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터가 선택된 메모리 블록에 프로그램되도록 상기 멀티-비트 플래시 메모리 장치를 제어한다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 플래시 메모리 장치를 포함한 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 2는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 2를 참조하면, 본 발명에 따른 메모리 시스템은 플래시 메모리 장치(100)와 메모리 컨트롤러(200)를 포함할 것이다. 플래시 메모리 장치(100)와 메모리 컨트롤러(200)는, 예를 들면, 메모리 카드를 구성할 것이다. 이 경우, 메모리 컨트롤러와 외부 장치는 다양한 인터페이스 방식들을 이용하여 인터페스하도록 구성될 것이다. 또는, 플래시 메모리 장치(100)와 메모리 컨트롤러(200)는 단일의 칩으로 형성된 OneNANDTM 플래시 메모리 장치를 구성할 수도 있다. 하지만, 본 발명에 따른 메모리 시스템의 적용이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
플래시 메모리 장치(100)는 멀티-비트 데이터를 저장하는 멀티-비트 플래시 메모리 장치일 것이다. 플래시 메모리 장치(100)는 메모리 컨트롤러(200)의 제어에 따라 프로그램, 소거, 읽기 동작들을 수행하도록 구성될 것이다. 예를 들면, 플래시 메모리 장치(100)는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, 상변환 메모리 장치, 등과 같은 불 휘발성 메모리 장치일 것이다. 메모리 컨트롤러(200)는 외부 장치(예를 들면, 호스트)로부터의 명령에 응답하여 플래시 메모리 장치(100)를 제어할 것이다. 메모리 컨트롤러(200)는 중앙처리장치(CPU)(210), 펌웨어를 저장하기 위한 메모리(220), 버퍼 메모리(230), 그리고 플래시 인터페이스(240)를 포함할 것이다. 비록 도면에는 도시되지 않았지만, 도 2의 메모리 시스템이 메모리 카드를 구성할 경우, 메모리 컨트롤러(200)에는 메모리 카드의 기능을 수행하는 데 필요한 기능 블록들(예를 들면, 보안 블록, 암복호화 블록, 등)이 더 제공될 것이다.
외부 장치로부터 명령이 입력될 때, 중앙처리장치(210)는 메모리(220)에 저장된 펌웨어에 따라 입력 명령에 대응하는 동작의 절차들을 제어할 것이다. 메모리(220)에 저장된 펌웨어는 이 분야에 잘 알려진 플래시 변환 레이어(Flash Translation Layer: FTL)를 포함할 것이다. 그러한 FTL은 어드레스 맵핑 기능, 배드 블록 관리 기능, 파워 페일 복원 기능, 하위 데이터의 손실을 방지하기 위한 본 발명의 데이터 백업 기능, 등을 포함할 것이다. 메모리(220)는 휘발성 메모리 또는 불 휘발성 메모리로 구성될 수 있다. 메모리(220)에 저장되는 펌웨어는 플래시 메 모리 장치(100)에 저장될 수 있다. 이러한 경우, 파워-업시 플래시 메모리 장치(100)에서 메모리(220)로 펌웨어가 로드될 것이다. 버퍼 메모리(230)는 플래시 메모리 장치(100)에 저장될 데이터 또는 플래시 메모리 장치(100)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 것이다. 플래시 인터페이스(240)는 중앙처리장치(210)의 제어에 따라 플래시 메모리 장치(100)로 읽기/프로그램/소거 명령과 함께 어드레스 그리고/또는 데이터를 전송할 것이다.
프로그램 동작이 요구될 때, 본 발명에 따른 메모리 컨트롤러(200)는 요구된 프로그램 동작에 대응하는 페이지에 저장될 데이터가 멀티-비트 데이터 중 최하위 데이터 비트인 지의 여부를 판별할 것이다. 만약 저장될 데이터가 멀티-비트 데이터 중 최하위 데이터 비트이면, 메모리 컨트롤러(200)는 일반적인 프로그램 절차에 따라 명령, 어드레스, 그리고 데이터를 플래시 메모리 장치(100)로 전송할 것이다. 만약 저장될 데이터가 멀티-비트 데이터 중 최하위 데이터 비트가 아니면, 메모리 컨트롤러(200)는 저장될 데이터와 관련된 메모리 셀들의 데이터가 플래시 메모리 장치(100)의 여분의 메모리 블록으로 백업되도록 플래시 메모리 장치(100)를 제어할 것이다. 데이터 백업 동작은 프로그램 동작이 수행되기 이전에 수행되거나, 최하위 데이터 비트가 프로그램된 후 수행될 수 있다. 이는 이후 상세히 설명될 것이다. 이러한 데이터 백업 동작을 통해 하위 데이터 비트(들)이 상위 데이터 비트의 프로그램 동작시 생기는 파워 페일로 인해 손실되는 것을 방지하는 것이 가능하다. 또한, 상위 데이터 비트의 프로그램 동작시 생기는 파워 페일로 인해 손실된 하위 데이터 비트(들)을 복원하는 것이 가능하다. 이는 이후 상세히 설명될 것이다.
도 3 내지 도 5는 멀티-비트 플래시 메모리 장치의 다양한 페이지 단위 프로그램 방식들을 설명하기 위한 도면들이다. 설명의 편의상, 메모리 셀에 2-비트 데이터가 저장된다고 가정하자. 이후, 메모리 셀에 저장되는 2개의 데이터 비트들 중 하나는 하위 데이터 비트(또는, LSB 데이터 비트)라 칭하고, 다른 하나는 상위 데이터 비트(또는, MSB 데이터 비트)라 칭한다.
각 워드 라인에는 복수의 메모리 셀들이 연결될 것이다. 도 3에는 단지 3개의 워드 라인들(WL0∼WL2)과 하나의 비트 라인(BL)에 연결된 3개의 메모리 셀들이 도시되어 있다. 하지만, 각 워드 라인에는 복수 개의 메모리 셀들이 연결됨은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 각 워드 라인에 연결된 메모리 셀들에 각각 저장되는 데이터 비트들은 2개의 페이지 데이터를 구성할 것이다. 예를 들면, 워드 라인(WL0)에 연결된 메모리 셀들에 각각 저장되는 LSB/하위 데이터 비트들은 LSB/하위 페이지 데이터를 구성하고, 워드 라인(WL0)에 연결된 메모리 셀들에 각각 저장되는 MSB/상위 데이터 비트들은 MSB/상위 페이지 데이터를 구성할 것이다.
도 3에 도시된 바와 같이, 워드 라인(WL0)에 연결된 메모리 셀에는 LSB 페이지 데이터로서 첫 번째 페이지 데이터 비트(0P) 및 MSB 페이지 데이터로서 두 번째 페이지 데이터 비트(1P)가 연속적으로 저장될 것이다. 워드 라인(WL1)에 있어서, 메모리 셀에는 LSB 페이지 데이터로서 세 번째 페이지 데이터 비트(2P) 및 MSB 페이지 데이터로서 네 번째 페이지 데이터 비트(3P)가 연속적으로 저장될 것이다. 마찬가지로, 워드 라인(WL2)에 있어서, 메모리 셀에는 LSB 페이지 데이터로서 다섯 번째 페이지 데이터 비트(4P) 및 MSB 페이지 데이터로서 여섯 번째 페이지 데이터 비트(5P)가 연속적으로 저장될 것이다. 워드 라인 번호(WN), 페이지 번호(PN), 그리고 LSB 및 MSB 데이터를 나타내는 데이터 유형(DT) 사이의 관계를 살펴보면, 도 3의 표에서 알 수 있듯이, LSB 페이지 데이터와 MSB 페이지 데이터가 저장된 메모리 셀의 행/워드 라인은 동일하다. 다시 말해서, 동일한 메모리 셀에 저장되는 LSB 페이지와 MSB 페이지 사이의 거리(이후, "페이지 오프셋 값"이라 칭함)는 '1'이다. 역으로, 페이지 오프셋 값이 '1'인 경우, LSB 페이지 데이터와 MSB 페이지 데이터는 연속적으로 메모리 셀에 프로그램될 것이다.
도 4에 도시된 페이지 단위 프로그램 방식을 살펴보면, 첫 번째 페이지 데이터(0P), 두 번째 페이지 데이터(1P), 그리고 세 번째 페이지 데이터(2P)가 워드 라인들(WL0, WL1, WL2)에 각각 연결된 메모리 셀들에 순차적으로 프로그램될 것이다. 그 다음에, 네 번째 페이지 데이터(3P), 다섯 번째 페이지 데이터(4P), 그리고 여섯 번째 페이지 데이터(5P)가 워드 라인들(WL0, WL1, WL2)에 각각 연결된 메모리 셀들에 순차적으로 프로그램될 것이다. 이러한 경우, 동일한 메모리 셀에 저장되는 LSB 페이지와 MSB 페이지 사이의 거리 즉, 페이지 오프셋 값은 '3'이다. 역으로, 페이지 오프셋 값이 '3'인 경우, LSB 페이지 데이터와 MSB 페이지 데이터는 비연속적으로 메모리 셀에 프로그램될 것이다.
도 5에 도시된 페이지 단위 프로그램 방식을 살펴보면, 페이지 오프셋 값은 일정하게 유지되는 것이 아니라 상이한 값들로 구분될 수 있다. 예를 들면, 도 5에 도시된 바와 같이, 페이지 오프셋 값은 '2' 및 '4'을 갖는다. 도 5에서 알 수 있듯 이, 첫 번째 페이지 데이터(0P)와 두 번째 페이지 데이터(1P)는 워드 라인들(WL0, WL1)에 각각 연결된 메모리 셀들에 프로그램될 것이다. 그 다음에, 세번째 페이지 데이터(2P)와 네번째 페이지 데이터(3P)는 워드 라인들(WL0, WL1)에 각각 연결된 메모리 셀들에 순차적으로 프로그램될 것이다. 이러한 경우, 동일한 메모리 셀에 저장되는 LSB 페이지와 MSB 페이지 사이의 거리 즉, 페이지 오프셋 값은 '2'이다. 이에 반해서, 다섯 번째 페이지 데이터(4P) 내지 여덟 번째 페이지 데이터(7P)는 워드 라인들(WL2∼WL5)에 각각 연결된 메모리 셀들에 순차적으로 프로그램될 것이다. 그 다음에, 아홉 번째 페이지 데이터(8P) 내지 열두 번째 페이지 데이터(11P)는 워드 라인들(WL2∼WL5)에 각각 연결된 메모리 셀들에 순차적으로 프로그램될 것이다. 이러한 경우, 동일한 메모리 셀에 저장되는 LSB 페이지와 MSB 페이지 사이의 거리 즉, 페이지 오프셋 값은 '4'이다.
도 6은 본 발명에 따른 메모리 시스템의 프로그램 동작을 설명하기 위한 흐름도이고, 도 7 및 도 8은 본 발명에 따른 메모리 시스템의 프로그램 동작들을 설명하기 위한 도면들이며, 도 9는 본 발명에 따른 메모리 시스템의 프로그램 동작시 데이터 백업 동작을 설명하기 위한 도면이다. 이하, 본 발명에 따른 메모리 시스템의 프로그램 동작이 참조 도면들에 의거하여 상세히 설명될 것이다. 플래시 메모리 장치의 동일한 메모리 셀에 저장되는 LSB 페이지 및 MSB 페이지 사이의 거리 즉, 페이지 오프셋 값이 '4'라고 가정하자. 이러한 가정하에서 메모리 시스템의 프로그램 동작이 설명될 것이다.
도 6을 참조하면, 프로그램 동작이 요구될 때, 메모리 컨트롤러(200)에는 명 령, 어드레스, 그리고 데이터가 외부 장치(예를 들면, 호스트)로부터 전송될 것이다(B310). 이때, 입력된 데이터는 버퍼 메모리(230)에 저장될 것이다. 설명의 편의상, 도 7에 도시된 바와 같이, "A"로 표기된 데이터(0P∼4P)가 플래시 메모리 장치(100)의 선택된 메모리 블록에 저장되어 있다고 가정하자. 메모리 컨트롤러(200)는 입력된 데이터가 저장될 메모리 셀에 이전에 데이터가 저장되었는 지의 여부를 판별할 것이다. 다시 말해서, 본 발명에 따른 메모리 컨트롤러(200)는 요구된 프로그램 동작에 대응하는 페이지에 저장될 데이터가 2-비트 데이터 중 LSB 데이터 비트인 지의 여부를 판별할 것이다(B320). 만약 저장될 데이터가 LSB 데이터 비트이면, 메모리 컨트롤러(200)는 어드레스 및 데이터와 함께 프로그램 명령을 플래시 메모리 장치(100)로 전송할 것이다(B340). 플래시 메모리 장치(100)는 어드레스 및 데이터와 함께 입력된 프로그램 명령에 응답하여 프로그램 동작을 수행할 것이다.
이에 반해서, 만약 저장될 데이터가 LSB 데이터 비트가 아니면, 현재 저장될 데이터의 시작 페이지를 기준으로 페이지 오프셋 값에 속하는 LSB 페이지들에 대한 데이터 백업 동작이 수행될 것이다. 예를 들면, 도 7 및 도 8에서 예시(CASE1)의 경우, "B"로 표기된 데이터의 시작 페이지(5P)를 기준으로 페이지 오프셋 값(OFFSET=4)에 속하는 LSB 페이지 데이터(P1∼P3)가 여분의 메모리 블록의 대응하는 페이지들(P1∼P3)로 각각 백업될 것이다. 이는 "B"로 표기된 데이터 즉, MSB 데이터의 프로그램 동작시 파워 페일로 인해 이전에 저장된 LSB 데이터가 손실되는 것을 방지하기 위함이다. 데이터 백업 동작은 다양한 방식으로 수행될 것이다. 예를 들면, 데이터는 카피백 프로그램 동작을 통해 플래시 메모리 장치(100)의 여분 의 메모리 블록으로 백업될 수 있다. 또는, 백업될 데이터는 메모리 컨트롤러(200)를 통해 여분의 메모리 블록의 대응하는 페이지에 저장될 수 있다. 이는 일련의 읽기 및 프로그램 동작들을 필요로 할 것이다. 읽기 동작을 통해 읽혀진 백업될 데이터에 대한 에러 검출 및 정정 동작이 메모리 컨트롤러(200)의 에러 검출 및 정정 유니트(도면에는 도시되지 않음)을 통해 수행될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 데이터 백업 동작이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 도 7 및 도 8에서 예시(CASE2)의 경우, "D"로 표기된 데이터의 시작 페이지(6P)를 기준으로 페이지 오프셋 값(OFFSET=4)에 속하는 LSB 페이지 데이터(P2, P3)가 여분의 메모리 블록의 대응하는 페이지들(P2, P3)로 각각 백업될 것이다. 이에 반해서, 도 7에서 예시(CASE3)의 경우, 저장될 데이터(F)가 LSB 데이터 비트이기 때문에, 메모리 컨트롤러(200)는 데이터 백업 동작 없이 어드레스 및 데이터와 함께 프로그램 명령을 플래시 메모리 장치(100)로 전송할 것이다(B340). 플래시 메모리 장치(100)는 어드레스 및 데이터와 함께 입력된 프로그램 명령에 응답하여 프로그램 동작을 수행할 것이다.
이상의 설명으로부터 알 수 있듯이, 데이터 백업 동작을 통해 하위/LSB 데이터 비트(들)이 상위/MSB 데이터 비트의 프로그램 동작시 생기는 파워 페일로 인해 손실되는 것을 방지하는 것이 가능하다.
데이터 백업 동작은, 앞서 설명된 바와 같이, 프로그램 동작 이전에 수행될 수 있다. 이에 반해서, 데이터 백업 동작은 페이지 데이터가 프로그램된 후 연속해 서 수행될 수 있다. 예를 들면, 도 9를 참조하면, B410 및 B420 블록들을 통해 페이지 데이터가 플래시 메모리 장치(100)에 프로그램될 것이다. 그 다음에, 메모리 컨트롤러(200)는 페이지 오프셋 값을 이용하여 저장된 데이터에 LSB 데이터가 포함되어 있는 지의 여부를 판별할 것이다(B430). 만약 그렇다면, 저장된 데이터 중 LSB 데이터는 앞서 언급된 방식에 따라 여분의 메모리 블록으로 백업될 것이다(B440). 이후, 프로그램 동작이 종료될 것이다.
도 10에 도시된 바와 같이, 메모리 블록에 복수의, 예를 들면, 2개의 페이지 오프셋 값들이 적용될 수 있다. 이러한 경우에도 앞서 설명된 방식에 따라 데이터 백업 동작이 수행될 것이다. 예를 들면, 예시(CASE4)의 경우, 저장될 데이터가 LSB 데이터이기 대문에, 데이터 백업 동작은 수행되지 않는다. 이에 반해서, 예시(CASE5)의 경우, 저장될 데이터가 LSB 데이터가 아니기 때문에, 현재 저장될 데이터의 시작 페이지를 기준으로 페이지 오프셋 값에 속하는 LSB 페이지들에 대한 데이터 백업 동작이 수행될 것이다. 즉, "D"로 표기된 데이터의 시작 페이지(11P)를 기준으로 페이지 오프셋 값(OFFSET=2)에 속하는 LSB 페이지 데이터(P9)가 여분의 메모리 블록의 대응하는 페이지들(P9)로 백업될 것이다.
도 11은 본 발명의 다른 실시예에 따른 메모리 시스템의 프로그램 동작을 설명하기 위한 도면이다.
상위 페이지 데이터를 프로그램할 때 생길 수 있는 파워 페일로 인해 하위 페이지 데이터가 손실되는 것을 방지하기 위해서, 도 11에 도시된 경우(CASE6)과 같이, "A"로 표기된 데이터가 저장된 후, "B"로 표기된 데이터가 저장될 페이지 번 호(예를 들면, 6P)와 페이지 오프셋 값(OFFSET=4)을 더하여 얻어진 페이지 번호(예를 들면, 10P)를 B"로 표기된 데이터의 시작 페이지 번호로서 결정하는 것이 가능하다. 또는, 도 11에 도시된 경우(CASE7)과 같이, 하위 페이지에 영향을 주는 페이지들을 빈 페이지로 설정함으로써 하위 데이터가 손실되는 것을 방지할 수 있다. 빈 페이지는 페이지 어드레스의 증가를 통해 검출될 수 있다. CASE7 및 CASE7의 경우, 대용량의 데이터(예를 들면, 동영상, MP3 파일, 사진, 등)를 저장할 때 또는 적은 용량의 데이터(예를 들면, 메타 데이터)를 저장할 때 유용할 것이다. 또한, 여분의 메모리 블록을 사용하지 않는 메모리 시스템에 CASE7의 방식을 적용하는 것이 유용할 것이다.
도 12는 상위 데이터의 프로그램 동작시 생기는 파워 페일로 인해 손실된 하위 데이터를 복원하는 동작을 설명하기 위한 흐름도이고, 도 13은 데이터 복원 동작에 따른 데이터 흐름을 보여주는 도면이다.
먼저 도 12를 참조하면, 전원이 인가되면, 메모리 컨트롤러(200)는, 파워 페일 복원 기능을 갖는 펌웨어에 의거하여, 파워 페일이 생겼는 지의 여부를 판별할 것이다(B510). 만약 파워 페일이 생기지 않은 것으로 판별되면, 데이터 복원 동작은 종료될 것이다. 이후, 메모리 컨트롤러(200)는 외부 장치(예를 들면, 호스트)의 요청에 따라 플래시 메모리 장치(100)를 제어할 것이다. 만약 파워 페일이 생긴 것으로 판별되면, 도 13에 도시된 바와 같이, 메모리 컨트롤러(200)는 프로그램 페일이 생긴 메모리 블록(즉, 페일된 메모리 블록) 내의 유효한 데이터와 백업 메모리 블록 내의 백업 데이터를 여분의 메모리 블록으로 복사하도록 플래시 메모리 장 치(100)를 제어할 것이다(B520). 여분의 메모리 블록으로 데이터를 복사하는 동작은 카피백 프로그램 방식, 반복적인 읽기 및 프로그램 방식, 등을 포함한 다양한 방식들을 통해 행해질 것이다. 이러한 데이터 백업 동작을 통해 파워 페일로 인해 손실된 하위 데이터를 복원하는 것이 가능하다. 페일된 메모리 블록과 백업 메모리 블록은 소거 절차를 거쳐(또는 소거 절차 없이) 여분의 메모리 블록으로 설정될 것이다.
도 14는 본 발명의 메모리 시스템에 따른 프로그램 동작시 하위 데이터의 손실을 방지하는 동작들이 프로그램 데이터 타입에 따라 상이한 방식으로 수행됨을 설명하기 위한 흐름도이다.
도 14를 참조하면, 메모리 컨트롤러(200)는 플래시 메모리 장치(100)에 저장된 데이터가 메타 데이터인 지의 여부를 판별할 것이다(B610). 플래시 메모리 장치(100)에 저장된 데이터가 메타 데이터인 경우, 메모리 컨트롤러(200)는 도 11에서 설명된 프로그램 스킵 방식에 따라 프로그램 동작을 수행할 것이다(B620). 이러한 프로그램 방식을 통해 상위 데이터의 프로그램 동작시 생기는 파워 페일로 인한 하위 데이터의 손실을 방지하는 것이 가능하다. 이에 반해서, 플래시 메모리 장치(100)에 저장된 데이터가 메타 데이터가 아닌 경우, 메모리 컨트롤러(200)는 도 6 및 도 9에서 설명된 백업 방식에 따라 프로그램 동작을 수행할 것이다(B630). 마찬가지로, 이러한 프로그램 방식을 통해 상위 데이터의 프로그램 동작시 생기는 파워 페일로 인한 하위 데이터의 손실을 방지하는 것이 가능하다.
도 15는 셀 당 3-비트 데이터를 저장하는 플래시 메모리 장치의 데이터 백업 동작을 설명하기 위한 도면이다.
셀 당 3-비트 데이터가 저장되는 경우, 페이지 오프셋 값들은 두 번째 데이터 비트를 저장할 때 그리고 세 번째 데이터 비트를 저장할 때 다르다. 도 15에서 알 수 있듯이, 하위 데이터 비트 즉, 최하위 데이터 비트(OP/1P/2P)는 상위 데이터 비트로서 두 번째 데이터 비트(3P/4P/5P)가 저장될 때 생길 수 있는 파워 페일로 인해 손실될 수 있다. 이러한 경우, 페이지 오프셋 값은 '3'일 것이다. 또한, 하위 데이터 비트(3P/4P/5P)는 상위 데이터 비트로서 세 번째 데이터 비트(6P/7P/8P)가 저장될 때 생길 수 있는 파워 페일로 인해 손실될 수 있다. 이러한 경우, 페이지 오프셋 값은 '6'일 것이다. 따라서, M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장하는 경우 상이한 페이지 오프셋 값들에 따라 데이터 백업 동작이 수행될 것이다. 데이터 백업 동작은 앞서 설명된 것과 동일한 방식으로 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다.
도 16은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 16을 참조하면, 본 발명의 다른 실시예에 따른 컴퓨팅 시스템은 호스트(300), 메모리 컨트롤러(400), 그리고 플래시 메모리 장치(500)를 포함할 것이다. 메모리 컨트롤러(400)는 호스트(300)의 요청에 따라 플래시 메모리 장치(500)를 제어하도록 구성될 것이다. 메모리 컨트롤러(400)는 도 2에서 설명된 것과 달리 일반적인 메모리 제어 기능들을 수행하도록 구성될 것이다. 호스트(300)는 디바이스 드라이버(DD)를 포함할 것이다. 디바이스 드라이버(DD)는 메모리 컨트롤러(400) 와의 인터페이스 기능을 수행하는 데 사용될 뿐만 아니라, 앞서 설명된 데이터 백업 방식에 따라 하위 데이터의 손실을 방지하기 위한 기능들을 수행하는 데 사용될 것이다. 그러한 데이터 백업 방식은 앞서 설명된 것과 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
도 17은 본 발명의 또 다른 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 17을 참조하면, 플래시 메모리 장치(600)는 메모리 셀 어레이(610), 행 선택 회로(620), 감지 증폭 및 기입 드라이버 회로(630), 열 선택 회로(640), 그리고 제어 로직(650)을 포함할 것이다. 예시적인 실시예에 있어서, 플래시 메모리 장치(600)는 낸드 플래시 메모리 장치일 것이다. 특히, 제어 로직(650)은 앞서 언급된 데이터 백업 동작을 수행하는 데 필요한 펌웨어(651)를 포함할 것이다. 제어 로직(650)은 펌웨어(651)를 통해 앞서 언급된 데이터 백업 동작을 제어할 것이다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
상술한 바와 같이, 데이터 백업 동작을 통해 하위 데이터 비트(들)이 상위 데이터 비트의 프로그램 동작시 생기는 파워 페일로 인해 손실되는 것을 방지하는 것이 가능하다. 또한, 상위 데이터의 프로그램 동작시 생기는 파워 페일로 인해 손실된 하위 데이터를 복원하는 것이 가능하다.

Claims (45)

  1. 각각이 멀티-비트 데이터를 저장하는 메모리 셀들을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법에 있어서:
    선택된 메모리 셀에 저장될 데이터가 최하위 데이터인 지의 여부를 판별하고,
    상기 선택된 메모리 셀에 저장될 데이터가 최하위 데이터가 아닌 것으로 판별될 때, 상기 선택된 메모리 셀에 저장되어 있으며 상기 선택된 메모리 셀에 저장될 데이터보다 하위인 하위 데이터를 상기 멀티-비트 플래시 메모리 장치의 백업 메모리 블록으로 백업하는 것을 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 하위 데이터를 상기 백업 메모리 블록으로 백업한 후, 상기 저장될 데이터를 상기 선택된 메모리 셀에 프로그램하는 것을 더 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 선택된 메모리 셀에 저장될 데이터가 최하위 데이터인 것으로 판별될 때, 백업 동작 없이 상기 저장될 데이터를 상기 선택된 메모리 셀에 프로그램하는 것을 더 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, 그리고 상변환 메모리 장치 중 어느 하나를 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 메모리 셀들 각각은 2-비트 데이터를 저장하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 백업 메모리 블록으로 백업된 하위 데이터는 최하위 데이터인 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 메모리 셀들 각각은 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장하는 것을 특징으로 하는 방법.
  8. 제 7 항에 있어서,
    상기 백업 메모리 블록으로 백업된 하위 데이터는 상기 최상위 데이터보다 하위인 첫 번째 데이터 비트 내지 (M-1)번째 데이터 비트 모두 또는 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  9. 각각이 멀티-비트 데이터를 저장하는 메모리 셀들을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법에 있어서:
    저장될 데이터를 선택된 메모리 셀에 프로그램하고,
    상기 선택된 메모리 셀에 저장될 데이터가 최상위 데이터보다 하위인 하위 데이터인 지의 여부를 판별하고,
    상기 선택된 메모리 셀에 저장될 데이터가 상기 하위 데이터인 것으로 판별될 때, 상기 선택된 메모리 셀에 저장된 상기 하위 데이터를 상기 멀티-비트 플래시 메모리 장치의 백업 메모리 블록으로 백업하는 것을 포함하는 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서,
    상기 메모리 셀들 각각은 2-비트 데이터를 저장하는 것을 특징으로 하는 방법.
  11. 제 10 항에 있어서,
    상기 백업 메모리 블록으로 백업된 하위 데이터는 최하위 데이터인 것을 특징으로 하는 방법.
  12. 제 9 항에 있어서,
    상기 메모리 셀들 각각은 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장하는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서,
    상기 백업 메모리 블록으로 백업된 하위 데이터는 상기 최상위 데이터보다 하위인 첫 번째 데이터 비트 내지 (M-1)번째 데이터 비트 모두 또는 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  14. 멀티-비트 데이터를 저장하는 메모리 셀들을 갖는 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법에 있어서:
    페이지 오프셋 값에 따라, 선택된 메모리 블록에 저장될 데이터가 백업될 데이터인 지의 여부를 판별하고,
    판별 결과에 따라 상기 선택된 메모리 블록에 저장될 데이터의 시작 페이지를 기준으로 페이지 오프셋 값에 속하는 상기 선택된 메모리 블록의 하위 페이지 데이터를 백업 메모리 블록으로 백업하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서,
    상기 선택된 메모리 블록에 저장될 데이터가 백업될 데이터로서 판별될 때, 상기 선택된 메모리 블록에 저장될 데이터의 시작 페이지를 기준으로 페이지 오프 셋 값에 속하는 상기 선택된 메모리 블록의 하위 페이지 데이터는 상기 백업 메모리 블록으로 백업되는 것을 특징으로 하는 방법.
  16. 제 14 항에 있어서,
    상기 선택된 메모리 블록에 저장될 데이터가 백업될 데이터가 아닌 것으로 판별될 때, 상기 저장될 데이터는 상기 선택된 메모리 블록에 프로그램되는 것을 특징으로 하는 방법.
  17. 제 14 항에 있어서,
    상기 플래시 메모리 장치는 낸드 플래시 메모리 장치를 포함하는 것을 특징으로 하는 방법.
  18. 제 14 항에 있어서,
    상기 멀티-비트 데이터는 M-비트 데이터(M은 2 또는 그 보다 큰 정수)인 것을 특징으로 하는 방법.
  19. 제 14 항에 있어서,
    상기 메모리 블록들 각각은 하나의 페이지 오프셋 값을 갖는 것을 특징으로 하는 방법.
  20. 제 14 항에 있어서,
    상기 메모리 블록들 각각은 적어도 2개의 페이지 오프셋 값들을 갖는 것을 특징으로 하는 방법.
  21. 제 14 항에 있어서,
    파워-온시 상기 선택된 메모리 블록에 대한 파워 페일이 검출될 때, 상기 백업 메모리 블록에 백업된 데이터와 상기 선택된 메모리 블록의 유효 데이터는 여분의 메모리 블록으로 복사되는 것을 특징으로 하는 방법.
  22. 복수의 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치와; 그리고
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 시작 어드레스를 기준으로 페이지 오프셋 값에 속하는 하위 데이터가 있는 지의 여부를 판별하도록 구성되며; 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 있는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 상기 메모리 블록들 중 여분의 메모리 블록으로 백업되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 메모리 시스템.
  23. 제 22 항에 있어서,
    상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 없는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터가 선택된 메모리 블록에 프로그램되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 메모리 시스템.
  24. 제 22 항에 있어서,
    상기 메모리 셀들 각각은 2-비트 데이터를 저장하는 메모리 시스템.
  25. 제 24 항에 있어서,
    상기 백업 메모리 블록으로 백업된 하위 데이터는 최하위 데이터인 메모리 시스템.
  26. 제 22 항에 있어서,
    상기 메모리 셀들 각각은 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장하는 메모리 시스템.
  27. 제 26 항에 있어서,
    상기 백업 메모리 블록으로 백업된 하위 데이터는 첫 번째 데이터 비트 내지 (M-1)번째 데이터 비트 모두 또는 적어도 하나를 포함하는 메모리 시스템.
  28. 제 22 항에 있어서,
    상기 메모리 시스템은 파워-온시 상기 선택된 메모리 블록에 대한 파워 페일이 생겼는 지의 여부를 검출하도록 구성되는 메모리 시스템.
  29. 제 28 항에 있어서,
    상기 선택된 메모리 블록에 대한 파워 페일이 검출될 때, 상기 메모리 컨트롤러는 상기 백업 메모리 블록에 백업된 데이터와 상기 선택된 메모리 블록의 유효 데이터가 여분의 메모리 블록으로 복사되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 메모리 시스템.
  30. 제 22 항에 있어서,
    상기 멀티-비트 플래시 메모리 장치는 낸드 플래시 메모리 장치를 포함하는 메모리 시스템.
  31. 제 22 항에 있어서,
    상기 멀티-비트 플래시 메모리 장치와 상기 메모리 컨트롤러는 OneNANDTM 플래시 메모리 장치를 구성하는 메모리 시스템.
  32. 복수의 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치와; 그리고
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 어드레스와 페이지 오프셋 값을 더하여 얻어진 어드레스를 상기 프로그램될 데이터의 시작 어드레스로서 결정하도록 구성되는 메모리 시스템.
  33. 복수의 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치와; 그리고
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터가 하위 데이터에 영향을 주는 적어도 하나의 페이지를 빈 페이지로 설정하도록 구성되는 메모리 시스템.
  34. 멀티-비트 플래시 메모리 장치와;
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러와; 그리고
    상기 메모리 컨트롤러를 제어하도록 구성된 호스트를 포함하며, 상기 호스트는 청구항 1에 기재된 방법을 수행하는 디바이스 드라이버를 포함하는 컴퓨팅 시스 템.
  35. 멀티-비트 플래시 메모리 장치와;
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러와; 그리고
    상기 메모리 컨트롤러를 제어하도록 구성된 호스트를 포함하며, 상기 호스트는 청구항 9에 기재된 방법을 수행하는 디바이스 드라이버를 포함하는 컴퓨팅 시스템.
  36. 멀티-비트 플래시 메모리 장치와;
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러와; 그리고
    상기 메모리 컨트롤러를 제어하도록 구성된 호스트를 포함하며, 상기 호스트는 청구항 14에 기재된 방법을 수행하는 디바이스 드라이버를 포함하는 컴퓨팅 시스템.
  37. 멀티-비트 데이터를 저장하도록 구성된 메모리 시스템과; 그리고
    상기 메모리 시스템을 제어하도록 구성된 호스트를 포함하며,
    상기 메모리 시스템은
    복수의 메모리 블록들을 포함하는 멀티-비트 플래시 메모리 장치와; 그리고
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 시작 어드레스를 기준으로 페이지 오프셋 값에 속하는 하위 데이터가 있는 지의 여부를 판별하도록 구성되며; 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 있는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 상기 메모리 블록들 중 여분의 메모리 블록으로 백업되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 컴퓨팅 시스템.
  38. 멀티-비트 플래시 메모리 장치와; 그리고
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터인 지의 여부를 판별하도록 구성되며; 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터로 판별될 때, 상기 메모리 컨트롤러는 상기 메타 데이터의 어드레스와 페이지 오프셋 값을 더하여 얻어진 어드레스를 상기 메타 데이터의 시작 어드레스로서 결정하도록 구성되는 메모리 시스템.
  39. 제 38 항에 있어서,
    상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터가 아닌 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 시작 어드레스를 기준으로 페이지 오프셋 값에 속하는 하위 데이터가 있는 지의 여부를 판별하는 메모리 시스템.
  40. 제 39 항에 있어서,
    상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 있는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 상기 메모리 블록들 중 여분의 메모리 블록으로 백업되도록 상기 멀티 -비트 플래시 메모리 장치를 제어하는 메모리 시스템.
  41. 제 40 항에 있어서,
    상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 없는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터가 선택된 메모리 블록에 프로그램되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 메모리 시스템.
  42. 멀티-비트 플래시 메모리 장치와; 그리고
    상기 멀티-비트 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터인 지의 여부를 판별하도록 구성되며; 상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터로 판별될 때, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터가 하위 데이터에 영향을 주는 적어도 하나의 페이지를 빈 페이지로 설정하도록 구성되는 메모리 시스템.
  43. 제 42 항에 있어서,
    상기 멀티-비트 플래시 메모리 장치에 저장될 데이터가 메타 데이터가 아닌 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 멀티-비트 플래시 메모리 장치에 프로그램될 데이터의 시작 어드레스를 기준으로 페이지 오프셋 값에 속하는 하위 데이터가 있는 지의 여부를 판별하는 메모리 시스템.
  44. 제 43 항에 있어서,
    상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 있는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 상기 메모리 블록들 중 여분의 메모리 블록으로 백업되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 메모리 시스템.
  45. 제 44 항에 있어서,
    상기 프로그램될 데이터의 시작 어드레스를 기준으로 상기 페이지 오프셋 값에 속하는 하위 데이터가 없는 것으로 판별될 때, 상기 메모리 컨트롤러는 상기 프로그램될 데이터가 선택된 메모리 블록에 프로그램되도록 상기 멀티-비트 플래시 메모리 장치를 제어하는 메모리 시스템.
KR20070042041A 2007-04-30 2007-04-30 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 KR100889781B1 (ko)

Priority Applications (10)

Application Number Priority Date Filing Date Title
KR20070042041A KR100889781B1 (ko) 2007-04-30 2007-04-30 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
US12/150,558 US8031522B2 (en) 2007-04-30 2008-04-28 Memory system, program method thereof, and computing system including the same
CN2008100956128A CN101303891B (zh) 2007-04-30 2008-04-29 存储***及其编程方法和包括存储***的计算***
CN201310542391.5A CN103632722B (zh) 2007-04-30 2008-04-29 存储***及其编程方法和包括存储***的计算***
TW097115782A TWI496275B (zh) 2007-04-30 2008-04-29 記憶體系統及其程式化方法以及包含該系統與方法的計算機系統
US13/220,194 US8223544B2 (en) 2007-04-30 2011-08-29 Memory system, program method thereof, and computing system including the same
US13/550,000 US8614914B2 (en) 2007-04-30 2012-07-16 Memory system, program method thereof, and computing system including the same
US14/139,175 US9030876B2 (en) 2007-04-30 2013-12-23 Memory system, program method thereof, and computing system including the same
US14/491,156 US9275742B2 (en) 2007-04-30 2014-09-19 Memory system, program method thereof, and computing system including the same
US14/831,116 US9460796B2 (en) 2007-04-30 2015-08-20 Memory system, program method thereof, and computing system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20070042041A KR100889781B1 (ko) 2007-04-30 2007-04-30 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20080097001A KR20080097001A (ko) 2008-11-04
KR100889781B1 true KR100889781B1 (ko) 2009-03-20

Family

ID=39886779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20070042041A KR100889781B1 (ko) 2007-04-30 2007-04-30 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템

Country Status (4)

Country Link
US (6) US8031522B2 (ko)
KR (1) KR100889781B1 (ko)
CN (2) CN101303891B (ko)
TW (1) TWI496275B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150029401A (ko) * 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100889781B1 (ko) 2007-04-30 2009-03-20 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
US8031517B2 (en) * 2008-07-30 2011-10-04 Samsung Electronics Co., Ltd. Memory device, memory system having the same, and programming method of a memory cell
US8274842B1 (en) * 2008-09-25 2012-09-25 Adesto Technologies Corporation Variable impedance memory device having simultaneous program and erase, and corresponding methods and circuits
US20120137093A1 (en) * 2010-11-30 2012-05-31 Micron Technology, Inc. Reliable write for non-volatile memory
US8681562B2 (en) * 2011-01-10 2014-03-25 Micron Technology, Inc. Memories and methods of programming memories
US9324433B2 (en) * 2011-04-25 2016-04-26 Microsoft Technology Licensing, Llc Intelligent flash reprogramming
US20130205066A1 (en) * 2012-02-03 2013-08-08 Sandisk Technologies Inc. Enhanced write abort management in flash memory
KR101979392B1 (ko) * 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20130128685A (ko) * 2012-05-17 2013-11-27 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9256502B2 (en) * 2012-06-19 2016-02-09 Oracle International Corporation Method and system for inter-processor communication
KR102002826B1 (ko) 2012-12-04 2019-07-23 삼성전자 주식회사 저장 장치, 플래시 메모리 및 저장 장치의 동작 방법
KR101994672B1 (ko) * 2012-12-04 2019-07-01 삼성전자 주식회사 저장 장치 및 저장 장치의 동작 방법
KR102106959B1 (ko) 2013-02-21 2020-05-07 에프아이오 세미컨덕터 테크놀로지스, 엘엘씨 멀티 레벨 셀 비휘발성 메모리 시스템
US9117530B2 (en) 2013-03-14 2015-08-25 Sandisk Technologies Inc. Preserving data from adjacent word lines while programming binary non-volatile storage elements
US9672919B2 (en) * 2013-04-22 2017-06-06 Apple Inc. Techniques for reducing power-down time in non-volatile memory devices
US9009568B2 (en) 2013-08-09 2015-04-14 Sandisk Technologies Inc. Sensing parameter management in non-volatile memory storage system to compensate for broken word lines
US20160216910A1 (en) * 2013-09-27 2016-07-28 Virtium Llc Solving MLC NAND paired page program using reduced spatial redundancy
DE102014104717B4 (de) * 2014-04-03 2019-08-01 Hyperstone Gmbh Verfahren und Vorrichtung zur Datenerneuerung für eine Erhöhung der Zuverlässigkeit von Flashspeichern
KR20160074237A (ko) * 2014-12-18 2016-06-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102295208B1 (ko) 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
KR20160132169A (ko) * 2015-05-06 2016-11-17 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR102651425B1 (ko) * 2016-06-30 2024-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN108614744B (zh) * 2016-12-09 2021-12-03 北京兆易创新科技股份有限公司 基于NAND flash的掉电保护方法和装置
US11055226B2 (en) * 2018-06-29 2021-07-06 Intel Corporation Mitigation of cache-latency based side-channel attacks
CN109062822B (zh) * 2018-07-18 2021-09-07 北京世纪东方通讯设备有限公司 一种机车无线通信数据的存储方法及装置
KR20200076886A (ko) * 2018-12-20 2020-06-30 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11309032B2 (en) 2019-11-26 2022-04-19 Samsung Electronics Co., Ltd. Operating method of memory system including memory controller and nonvolatile memory device
CN113360423A (zh) * 2020-03-03 2021-09-07 瑞昱半导体股份有限公司 数据储存***及操作数据储存***的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080027419A (ko) * 2006-09-22 2008-03-27 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
KR20080035353A (ko) * 2006-10-19 2008-04-23 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100206709B1 (ko) * 1996-09-21 1999-07-01 윤종용 멀티비트 불휘발성 반도체 메모리의 셀 어레이의 구조 및 그의 구동방법
KR100266745B1 (ko) * 1997-12-29 2000-09-15 윤종용 멀티-비트 데이터를 저장하기 위한 반도체 메모리 장치
KR100295135B1 (ko) * 1997-12-31 2001-07-12 윤종용 멀티-비트 셀 구조를 갖는 비휘발성 메모리 장치
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
JP3983969B2 (ja) * 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
JP2002334586A (ja) 2001-05-07 2002-11-22 Yamaha Corp フラッシュメモリを用いた情報記憶方法および情報記憶プログラム
JP2002351685A (ja) 2001-05-22 2002-12-06 Sankyo Seiki Mfg Co Ltd 不揮発性メモリのデータ更新方法及び制御装置
JP2003132693A (ja) 2001-10-29 2003-05-09 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6549457B1 (en) * 2002-02-15 2003-04-15 Intel Corporation Using multiple status bits per cell for handling power failures during write operations
TW547859U (en) * 2002-05-30 2003-08-11 Ritek Corp Nonvolatile memory device with a laser indicating function
US6988175B2 (en) 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US8112574B2 (en) * 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
CN100433195C (zh) * 2003-12-31 2008-11-12 深圳市朗科科技股份有限公司 闪存介质数据写入方法
US7420847B2 (en) 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7515831B2 (en) * 2005-02-25 2009-04-07 O2Micro International Ltd. System and method for auto-configuring a telecommunication device with an embedded controller
US7275140B2 (en) 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
KR100721012B1 (ko) * 2005-07-12 2007-05-22 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 프로그램 방법
JP4991131B2 (ja) 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
KR100756711B1 (ko) 2005-08-12 2007-09-07 가부시끼가이샤 도시바 데이터의 파괴를 방지하는 반도체 메모리 장치
US7526715B2 (en) * 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
US20070101186A1 (en) * 2005-11-02 2007-05-03 Inventec Corporation Computer platform cache data remote backup processing method and system
CN1933026A (zh) * 2006-08-18 2007-03-21 福昭科技(深圳)有限公司 高可靠排序管理扇区的存储结构
KR100809320B1 (ko) 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
KR100799688B1 (ko) * 2007-01-03 2008-02-01 삼성전자주식회사 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법
KR100889781B1 (ko) 2007-04-30 2009-03-20 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
US8533562B2 (en) 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080027419A (ko) * 2006-09-22 2008-03-27 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
KR20080035353A (ko) * 2006-10-19 2008-04-23 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150029401A (ko) * 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
KR102117929B1 (ko) * 2013-09-10 2020-06-02 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법

Also Published As

Publication number Publication date
US8223544B2 (en) 2012-07-17
US20150357041A1 (en) 2015-12-10
US9030876B2 (en) 2015-05-12
TWI496275B (zh) 2015-08-11
CN101303891A (zh) 2008-11-12
TW200849568A (en) 2008-12-16
US20150006802A1 (en) 2015-01-01
US20120284452A1 (en) 2012-11-08
KR20080097001A (ko) 2008-11-04
US20080266948A1 (en) 2008-10-30
CN103632722A (zh) 2014-03-12
US20110314207A1 (en) 2011-12-22
US8614914B2 (en) 2013-12-24
US8031522B2 (en) 2011-10-04
CN101303891B (zh) 2013-12-04
CN103632722B (zh) 2017-01-11
US9460796B2 (en) 2016-10-04
US9275742B2 (en) 2016-03-01
US20140112070A1 (en) 2014-04-24

Similar Documents

Publication Publication Date Title
KR100889781B1 (ko) 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
JP5376872B2 (ja) マルチ−ビットデータを格納するメモリシステム及びその読み出し方法
US7751238B2 (en) Memory system protected from errors due to read disturbance and reading method thereof
US9159441B2 (en) Method of operating memory device assuring reliability and memory system
TWI419159B (zh) 記憶體系統
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
US9852032B2 (en) Data storage devices and data maintenance methods
US8607120B2 (en) Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same
KR100823170B1 (ko) 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드
US8611150B2 (en) Flash memory device including flag cells and method of programming the same
US20140115419A1 (en) Memory system that detects bit errors due to read disturbance and methods thereof
US11380402B2 (en) Memory system and operating method thereof
US8924774B2 (en) Semiconductor memory device and method for operating the same
US8885406B2 (en) Memory device, memory control device, and memory control method
JP2009211188A (ja) メモリシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180228

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200228

Year of fee payment: 12