KR101215864B1 - 전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법 - Google Patents

전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법 Download PDF

Info

Publication number
KR101215864B1
KR101215864B1 KR1020077028919A KR20077028919A KR101215864B1 KR 101215864 B1 KR101215864 B1 KR 101215864B1 KR 1020077028919 A KR1020077028919 A KR 1020077028919A KR 20077028919 A KR20077028919 A KR 20077028919A KR 101215864 B1 KR101215864 B1 KR 101215864B1
Authority
KR
South Korea
Prior art keywords
page
pages
recorded
data
log
Prior art date
Application number
KR1020077028919A
Other languages
English (en)
Other versions
KR20080008419A (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 샌디스크 아이엘 엘티디
Publication of KR20080008419A publication Critical patent/KR20080008419A/ko
Application granted granted Critical
Publication of KR101215864B1 publication Critical patent/KR101215864B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Abstract

플래시 매체와 같은 페이지-기반 데이터 스토리지 매체를 관리하는 방법, 상기 방법을 이용하는 시스템, 및 상기 방법을 구현하기 위한 코드를 내장한 컴퓨터판독가능한 스토리지 매체가 제공된다. 각 페이지에 대해, 페이지로 기록하는 것이 인터럽트되면, 그의 데이터가 손상의 위험에 처하는 다른 페이지의 해당하는 위험지역이 식별된다. 새로운 데이터를 기록하기 위한 페이지가 선택되면, 그의 위험지역의 기록된 페이지는 로그로 복사된다. 필요할때, 손상된 데이터는 로그로부터의 해당하는 데이터로 대체된다.
페이지, 메모리, 위험 지역, 데이터, 로그, 오류 검지 코드, 기록 모드, 데이터 스토리지 매체, 셀

Description

전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리 관리 방법{FLASH MEMORY MANAGEMENT METHOD THAT IS RESISTANT TO DATA CORRUPTION BY POWER LOSS}
본 발명은 플래시 메모리 관리 방법에 관한 것으로, 특히 전력이 갑자기 중단되었을 때 데이터 손상을 방지하는 멀티-레벨 셀 플래시 메모리를 관리하는 방법에 관한 것이다.
플래시 메모리는 EEPROM(전기적 소거가능한 프로그래밍가능한 읽기전용 메모리)의 비휘발성 메모리의 형태이다. 도 1A는 하나 이상의 NAND 플래시 매체(12)에 데이터를 저장하기 위한 호스트 디바이스(도시되지 않음)에 의해 사용되는 일반적인 플래시-기반 데이터 스토리지 디바이스(10)의 고레벨의 개략적인 블록도이다. 디바이스(10)의 동작은 랜덤 액세스 메모리(RAM)(16)와 보조 비휘발성 메모리(18)의 도움으로 마이크로프로세서 기반의 컨트롤러(14)에 의해 제어된다. 이러한 목적을 위해, 플래시 디바이스(10) 및 호스트 시스템은 플래시 디바이스(10)에서의 통신 포트(20)를 통해 통신한다. 일반적으로, 그 운영 시스템이 자기 하드디스크와 같은 블록 메모리 디바이스에 익숙한 호스트 디바이스와의 후방 호환성을 위해, 플래시 디바이스(10)는, 본 문에 그 전체가 모든 목적에 대해 참조를 위해 통합된 Ban의 미국 특허 5,404,485 및 5,937,425에 의해 교시된 것들과 같은 플래시 메모리 관리 방법을 구현하는 보조 비휘발성 메모리(18)에 저장된 펌웨어를 이용하여, 블록 메모리 디바이스를 에뮬레이팅한다. 디바이스(10)의 컴포넌트들은 공통 하우징(15)에 함께 하우징된다.
데이터를 저장하기 위해 NAND 플래시 매체를 사용하는 기타 디바이스들이 공지되어 있다. 도 1B는 NAND 플래시 매체(12)가 긴 기간동안의 비휘발성 데이터 스토리지를 위해 자기 하드 디스크에 추가하여, 또는 그 대체물로서 사용되는 개인용 컴퓨터(10')를 도시한다. 컨트롤러(14)는 여기서 개인용 컴퓨터(10')의 중앙 처리 장치를 나타낸다. 보조 비휘발성 메모리(18)는 여기서 개인용 컴퓨터(10')의 부팅 코드가 저장되는 BIOS와 운영 체제를 저장하기 위한 자기 하드 디스크를 포함하고, 플래시 관리 시스템을 포함하는 개인용 컴퓨터(10')의 기타 비휘발성 메모리 모두를 나타낸다(그렇지 않으면, NAND 플래시 매체(12)는 자기 하드 디스크에 대한 대체물이고, 이경우, 운영 체제는 NAND 플래시 매체(12)에 저장된다). NAND 플래시 매체(12), 컨트롤러(14), RAM(16), 보조 비휘발성 메모리(18), 및 개인용 컴퓨터(10')의 기타 컴포넌트(도시되지 않음)는 버스(19)를 통해 서로 통신한다. 개인용 컴퓨터(10')의 일부 구성에서, NAND 플래시 매체(12)는 착탈가능한 카드 상에 있다. 개인용 컴퓨터(10')의 다른 구성에서, 예시로든 컴포넌트는 단일 유니터리 물리적 디바이스에 통합되어, NAND 플래시 매체(12)가 물리적으로 분리된 엔티티가 되지 않도록 한다.
컨트롤러(14)가 NAND 플래시 매체(12) 상에서 수행하는 동작은 판독 동작, 기록 동작 및 삭제 동작을 포함한다. NAND 플래시 매체(12)는 일반적으로 그 각각은 일반적으로 512 바이트에서 2048 바이트 사이를 포함하는 "페이지"라고 하는 단위로 기록되고, 일반적으로 그 각각은 16 내지 64 페이지를 포함하는 "블록"이라고 하는 단위로 삭제된다. NAND 플래시 매체(12)의 삭제가능한 단위를 가리키는 "블록"이라는 단어의 사용은 "블록 메모리 디바이스"라는 용어에서의 "블록"이라는 단어의 사용과 혼동되어서는 안된다는 것에 유의하라. 블록 메모리 디바이스의 "블록"의 속성은, 디바이스 드라이버가, 일반적으로 "섹터"라고 하는 고정된 크기의 단위의 정수의 배수인 단위로만 데이터를 교환하는 인터페이스를 익스포트한다는 사실을 참조한다.
NAND 플래시 매체(12)의 관리를 보조하기 위해, 컨트롤러(14)는 각 페이지에"비기록" 또는 "기록됨"의 상태를 할당한다. 그 상태가 "비기록"인 페이지는 그것이 삭제된 마지막 시간 이후로 기록되지 않은(비기록된) 페이지이고, 따라서 기록을 할 수 있다. 그의 상태가 "기록됨"인 페이지는 데이터가 기록되어 있고 아직 삭제되지 않은 페이지이다. 디바이스(10)의 일부 실시예에서, 컨트롤러(14)는 또한 일부 페이지에 "삭제됨"의 상태를 할당한다. 그의 상태가 "삭제됨"인 페이지는 유효하지 않은(일반적으로 폐기된 또는 날짜가 오래된) 데이터를 포함하는 페이지이다. "삭제됨" 페이지를 지원하는 디바이스(10)의 실시예에서, "기록됨" 상태는 유효한 데이터를 포함하는 페이지에 대해 예약된다. 본 문에서, 그의 상태가 "비기록됨"인 페이지는 "비기록된 페이지"라고 하며, 그의 상태가 "기록됨"인 페이지는 "기록된 페이지", 그의 상태가 "삭제됨"인 페이지는 "삭제된 페이지"라고 한다.
디바이스(10)는 비휘발성 데이터 스토리지에 사용되기 때문에, 디바이스(10)가 모든 환경하에서 그에 기록된 데이터를 유지하는 것이 필수적이다. 디바이스(10)에 저장된 데이터의 무결성에 대한 주된 위험은 디바이스(10)에 대한 전원이 디바이스(10)가 동작하는 중간에 사전의 통지없이 차단되는 갑작스런 정전이다. 대개 이러한 정전은 동작을 중단시켜 오류 또는 예측할 수 없는 결과를 야기한다.
정전이 NAND 플래시 매체(12)의 컨텐츠를 변화시키는 동작의 중간, 예를 들면 데이터를 페이지에 기록하는 중간, 또는 블록을 삭제하는 중간에 발생한다면, 중단된 페이지 또는 블록의 컨텐츠는 디바이스(10)가 다시 전력이 공급된 후에 어떻게 될지 예측할 수 없고, 실제로 랜덤하게 될 수도 있다. 이것은 영향을 받은 일부 비트들이 전력이 중단된 시간까지 그 동작에 의해 그들에게 할당된 상태로 도달하면서, 동시에 다른 비트들이 뒤에서 지연되고 그들의 타겟값에 아직 도달하지 못하기 때문이다. 또한, 일부 비트들은 중간 상태로 놓여, 이들 비트들을 판독하는 것은 상이한 판독 동작시의 상이한 결과를 반환하는 신뢰할 수 없는 모드가 될 수 있다.
이러한 문제는 예를 들면, 이스라엘 케이파 사바의, M-Systems Flash Disk Pioneers Ltd.에 의해 사용되는 TrueFFS™ 플래시 관리 시스템과 같은, 다수의 종래 기술의 플래시 관리 소프트웨어에 의해 잘 핸들링될 수 있다. 이러한 종래 기술 시스템이 이러한 문제점들에 대해 방비를 할 수 있는 이유는, 데이터 손상은 정전이 발생할 때 변형되는 페이지 또는 블록에 국부화되기 때문이다. NAND 플래시 매체(12)의 모든 다른 페이지는 자신의 컨텐츠를 유지하고, 손상되지 않는다. 따라서, 기록 동작이 중단되는 경우, 종래 기술의 플래시 관리 시스템은 모든 다른 페이지의 유효성을 가정하고, 기록된 마지막 페이지에 집중한다. 이용이 가능한 다수의 접근 방식이 있다.
하나의 접근방식은 동작 이전에 미리정해진 위치에 기록될 페이지 또는 삭제될 블록에 대한 포인터를 저장하여, 디바이스(10)가 다시 전력이 공급될 때, 컨트롤러(14)가 이러한 포인터를 검사하고 즉시 어떠한 페이지 또는 블록이 목표로하는 마지막의 것인지를 알수 있게 된다. 이러한 방법은 대개 동작이 성공적으로 완료되었는지를 컨트롤러(14)에 신호하는 하나 이상의 유효성 플래그를 사용한다. 예를 들어, 본문에 그 전체가 설명의 목적으로 참조에 의해 통합된 미국 특허 제 6,977,847을 참조하라. 상기 출원서는 삭제하는 동안 전력 손실에 대해 보호하기 위해 이러한 방법의 예를 교시한다.
또다른 접근방식은 데이터가 주어진 시간에 페이지의 서브셋으로만 기록될 수 있는 위치를 제한하는 것이다. 컨트롤러(14)는 모든 이러한 위치를 잠재적으로 손상된 것으로 간주할 수 있고, 전력 공급시 그 안에 저장된 데이터를 이용하는 것을 방지할 수 있다. 대안으로, 컨트롤러(14)는 상기 데이터를 그것들을 손상되지 않은 것으로 신뢰하기 전에 "유효성 테스트"를 시킬 수 있다. 이러한 접근방식이 적용될 수 있는 플래시 관리 방법의 예는 본문에 전체가 설명을 위해 참조에 의해 통합되어 있는 미국 특허 제 6,678,785에서 교시된다. 미국특허 6,678,785에 따라, 기록 알고리즘은 각 블록 내에 연속적인 순서로 새로운 페이지를 기록하는 것에 제한된다. 따라서, 전력 공급시, 주어진 임의의 블록에 기록된 마지막 페이지가 그 블록에 기록된 가장 높은 수의 페이지가 된다는 것이 알려진다.
다른 시스템은 이러한 쇼트커트에 대해 수정가능하지 않고,의심되는 페이지를 식별하는 억지기법(brute force)의 방법이 사용될 수 있다. 그럼에도 불구하고, 전력 손실 데이터 손상 문제의 핸들링은 마지막으로 기록된 페이지의 데이터만 손상되고, 모든 다른 페이지에 저장된 데이터는 신뢰할 수 있다는 것을 아는 것에 의해 상대적으로 쉽게 이루어진다.
상기의 논의는 스탠드-어론 엔티티로서 페이지의 유효성을 적용한다는 것을 지적한다. 또한 어떠한 페이지의 기록도 중단되지 않더라도 전체로서의 시스템이 유효한지 여부에 대한 것을 함께 질의한다. 이러한 문제는 예를 들면, 사용자 레벨의 동작이 수개의 페이지-레벨 동작으로 구성되는 파일 시스템에서 발생할 수 있다. 예를 들면, 새로운 파일의 생성은 디렉토리 엔티티를 기록하는 것, 하나이상의 섹터 할당 테이블을 기록하는 것, 및 그런다음 실제 파일 데이터만을 기록하는 것을 포함한다. 이러한 일련의 기록 동작만이 전력공급이 중단되었을 때까지 완료되기만 한다면, 나머지 기록 동작이 시작되어야만 하는 동안에는, 어떠한 페이지도 손상되지 않지만, 그러나 전체로서의 파일 시스템은 손상된다. 이러한 문제를 방지하는 방법이 공지되었지만(예를 들면, 미국 특허출원 10/397,398를 참조하라), 그러나 본 발명의 범위 밖에 있는 것은 아니다.
최근, NAND 플래시 매체(12)는 전력 손실시의 국부적 데이터 손상에 관한 가정이 유효하지 않은 것으로 사용하도록 한다. 이러한 NAND 플래시 매체(12)의 예들이 Toshiba의 멀티레벨 셀(MLC) NAND 플래시 디바이스를 포함한다(예를 들면 TC58DVG04B1FT00). 이러한 디바이스에서, 각 셀은 1 비트가 아닌 2 비트를 저장한다. 상기의 디바이스의 내부 배치는 물리적 페이지가 528 x 8=4224셀인 그룹 내에 상주하도록 되어 있다. 그러나 반면에 다른 디바이스에선,이러한 셀의 그룹은 528 바이트의 1 페이지를 저장하고, Toshiba MLC NAND 플래시 디바이스에서는 이러한 셀의 그룹은 2 개의 상기의 데이터 페이지를 저장한다. 2 개 이상의 데이터 페이지를 저장하는 이러한 셀의 그룹을 본 문에서는 "수퍼페이지"라고 한다.
도 2는 이러한 MLC NAND 플래시 디바이스의 블록(30)의 개략적인 도면이다. 블록(30)은 32개의 수퍼페이지(34)에 각각 0 내지 63의 논리적 어드레스를 가진 64개의 페이지(32)를 포함한다. 페이지(32)의 논리적 어드레스는 도 2의 블록(30)의 좌측 상의 컬럼에 도시되어 있다.
하기의 이벤트의 시퀀스를 고려해보라.
1. 2-페이지의 수퍼페이지(34)의 페이지(32) 중 하나는 성공적으로 기록되고, 다른 페이지는 기록되지 않음.
2. 2-페이지의 수퍼페이지(34)의 다른 페이지(32)에 기록하는 것이 전력 손실로 중단됨.
이러한 수퍼페이지(34)의 2 페이지(32)는 동일한 물리적 셀을 공유하기 때문에, 상기 전력 손실은 상기 두 페이지 모두를 손상시킬 수 있다. 두 페이지 모두(32)가 어떻게 손상될 수 있는지를 이해하기 위해, MLC 플래시 셀 내에 비트가 어떻게 인코딩되는 지를 고려할 필요가 있다. MLC 플래시 셀에 비트를 인코딩하는 하나의 방법은 US 5,095,344 및 US 5,043,940에서 Harari에 의해 교시된다. 상기의 방법에 따르면, 상이한 양의 전하를 플래시 셀의 플로팅 게이트로 주입함으로써 비트가 MLC 플래시 셀에 인코딩되고, 그에 의해 셀의 상이한 레벨의 임계전압 VT1을 산출한다. 하기의 표는 임계전압의 함수로서 셀에 저장된 2 비트의 값을 나타낸다.
VT1 비트 1의 값 비트 2의 값
-3.0V 1 1
-0.5V 1 0
+2.0V 0 1
+4.5V 0 0

실제에 있어, 2-비트 플래시 셀의 4 개의 가능한 비트의 조합이 4 개의 상이한 임계 전압 범위로서 저장된다. 상기의 예에서, 임계전압의 범위는 (0, 0)에 대해 +3.25V에서 +5.75V, (0, 1)에 대해 +0.75V에서 +3.25V, (1, 0)에 대해 -1.75V에서 +0.75V, (1, 1)에 대해 -4.25V에서 -1.75V이다. 2 비트 중 어느 하나를 변경시키는 것은 셀의 동일한 물리적 속성(즉, 임계값)을 변화시키는 것을 포함하기 때문에, 한 비트를 변경시키는 프로세스는 그의 이전의 안정적인 상태로부터 다른 비트를 시프트 시킨다는 것이 명확하다. 상기 변경이 정확하게 완료되지 않으면, 비트 중 어느 하나 또는 그 둘 다의 값에 대한 잘못된 번역을 야기할 수 있다.
이러한 문제점을 방지하는데에 있어서의 실제 어려움은 수퍼페이지(34)의 2 페이지(32)들이 2 개의 상이한, 폭넓게 분리된 시간 동안 기록될 수 있기 때문이다. 생각컨대 특정한 시간에 기록된 수퍼페이지(34)의 제 1 페이지(32)는 몇년 후에는 상기 수퍼페이지(34)의 제 2 페이지(32)로의 불완전한 기록에 의해 손상될 수 있다. 더구나, 플래시 관리 시스템의 탑에 있는 대부분의 파일 시스템은 동일한 수퍼페이지(34)의 페이지(32)가 완전히 관련없는 파일에 속할 수 있도록 인접하게 또는 인접하지않게 파일들에 페이지(32)를 할당할 수 있다. 한 파일의 업데이트 동안 전력 손실은 위험할 수 있다고 의심이 되지 않는 완전히 관련없는 파일을 손상시킬 수 있다. 명백하게, 이들 조건들은 종래 기술의 플래시 관리 시스템이 처리할 수 있는 능력 밖의 것이다.
본문에 그 전체가 설명의 목적으로 참조에 의해 통합된 미국 특허 6,988,175는 그의 기록이 다른 페이지에 다른 관련없는 미리 기록된 데이터를 위험하게 하지않는 페이지로만 인입한 데이터를 저장하는 정책을 적용함으로써 전력 중단의 이러한 문제를 해결한다. 미국특허 6,988,175의 방법은, 그의 데이터가 기록 중단에 의해 손상될 수도 있는 페이지의 "위험 지역"을 정의하는 것에 기초한다. 하나 이상의 페이지가 새로운 데이터 기록을 위해 선택될 때, 동작 기록을 위해 선택된 페이지(들)의 위험 지역(들)은 그/그들 위험지역(들)이 유효한 데이터를 저장할 수 있는지, 즉 그/그들 위험 지역(들)의 다른 페이지의 상태가 "기록됨" 상태인지 여부를 알기 위해 체크된다. 그/그들 위험 지역(들)에 다른 페이지가 실제로는 유효한 데이터를 저장하고 있다면, 그때는 선택된 페이지(들)는 기록될 수 없다. 대신에, 플래시 관리 시스템이 기록 동작을 위해 상이한 페이지 또는 페이지들을 찾는다.
페이지의 위험지역은 미국특허 6,988,175에서, 페이지가 기록될 때 그의 데이터가 손상의 위험이 있도록 배치되는 다른 페이지의 셋으로 정의된다. 예를 들면, 도 2에서, 각 페이지(32)의 위험 지역은 그 페이지(32)의 수퍼페이지(34)의 다른 페이지(32)이다. 하나 이상의 비기록된 페이지가 기록을 위해 선택될 때, 상기 선택된 페이지 또는 페이지들은 오직 그들의 위험지역 어디에도 기록된 페이지가 없을 때만 기록된다.
기록될 데이터가 한 페이지 이상의 범위라면, 타겟이 된 페이지는 연속적으로 또는 랜덤한 순서로 기록될 수 있다. "연속"기록은 블록의 페이지가 미국특허 6,678,785에서처럼, 증가하는 논리적 어드레스 순서로만 기록되는 것을 의미한다. "랜덤" 기록은 블록의 페이지가 임의의 논리적 어드레스 순서로 기록될 수 있다는 것을 의미한다. 미국특허 6,988,175와 본 발명 모두는 양 경우 모두에 동일하게 적용가능하다.
미국특허 6,988,175의 방법이 전력 중단의 결과로서 데이터 손상의 문제에 대한 해결안을 제공하는 반면, 그것들은 2 개의 주된 단점을 가진다. 첫번째 단점은 미리 기록된 페이지의 위험지역 내에 있는 페이지로 기록하는 것을 방지함으로써, 우리는 이들 페이지를 스킵하고 그것들을 미사용 상태로 남겨놓아야 한다는 것이다. 이것은 플래시 메모리의 물리적 어드레스 공간 내에 "홀"을 형성하고, 여기서는 기록된 페이지에 의해 둘러싸여진 미사용 페이지들이 있다. 예를 들면, 도 2의 경우(연속 기록의 경우를 가정), 사용자가 우선 페이지 0을 기록한 후에, 블록이 페이지 2로 지향되도록 하는 기록될 다음 데이터가 페이지 1을 미사용으로 남겨놓는다. 따라서, 페이지 1은 페이지 0과 2 사이에서 "홀"이 된다. 플래시 메모리로의 데이터의 기록동안 홀의 생성은 가치가 있는 공간을 소모하고, 판독시 이들 홀을 만날 준비를 하고, 이들 홀을 유효한 데이터를 포함한 것으로 번역하는 것을 방지해야만 하는 플래시 관리 소프트웨어를 복잡하게 만든다.
미국특허 6,988,175의 방법의 두번째 단점은 위험지역의 배치가 도 2에서처럼 대칭성이 없는 플래시 디바이스를 핸들링하는 데에 상대적으로 비효율적이라는 것이다. 도 2에서, 페이지 번호(20)의 위험 지역은 페이지 번호(21)이고, 페이지 번호(21)의 위험지역은 페이지 번호(20)이다. 따라서, 우리는 마치 상기 페이지들이 서로소(disjoint)의 그룹으로 분할된 것처럼 볼 수 있고, 여기서 그룹의 멤버들은 서로간에는 위험이 되지만, 그러나 그들의 그룹 외부의 페이지에 대해서는 위험 페이지가 되지 않는다. 페이지 20과 21은 이러한 하나의 그룹을 구성하고, 그들 중 어느 것도 그들 그룹의 외부의 다른 페이지에는 실제로 위험이 되지 않는다. 그러나, 실제 플래시 메모리 디바이스에서 이것은 사실이 아니다. 즉, 도 2의 페이지 21 및 22 사이의 바운더리와 같은, "위험의 전파"를 중단시키는 "바운더리"는 존재하지 않는다. 이러한 디바이스에서, 모든 페이지는 적어도 그에 후속하는 페이지를 위험에 놓이게 하고, 일부 페이지는 보다 높은 어드레스를 가지는 추가적인 페이지를 위험에 놓이게 한다. 이러한 복잡한 위험지역의 구조는 멀티-레벨 셀 플래시 디바이스가 그의 플래시 셀의 어레이의 인접한 워드-라인 사이의 간섭을 감소 또는 제거하는 기술을 구현할 때 생성되고, 여기서 이러한 기술은 페이지의 기록 순서에 영향을 준다. 이러한 기술의 일 예가 본 문에 설명의 목적으로 참조에 의해 그 전체가 통합되어 있는 "Operating Techniques For Reducing Effects of Coupling Between Storage Elements Of a Non-Volatile Memory Operated in Multiple Data States"라는 제하의 미국 특허 제 6,522,580에 Chen 등에 의해 개시되어 있다. 미국특허 6,988,175의 방법을 이러한 디바이스에 적용하면, 블록 내의 페이지가 우리의 기록 동작의 타겟인 점을 고려하지 않는, 스토리지 공간의 매우 비효율적인 활용을 야기하고, 우리는 항상 적어도 한 페이지를 스킵하고 홀을 생성해야만 한다(일 블록의 바로 제 1 페이지에 기록을 시작할 때를 제외하고는).
따라서, 멀티-레벨 셀에 기초하고, 플래시 디바이스의 브로드 클래스에 효율적인 NAND 플래시 매체(12)에 대한 전력 중단을 처리할 수 있는 개선된 플래시 관리 시스템을 가질 필요가 있고, 그를 가지는 것은 매우 이로울 것이다.
본 발명에 따르면, 이전에 기록된 페이지의 위험지역을 이용하는 것을 방지하는 대신에, 위험지역 내에 있는 페이지를 사용하지만, 그것들이 위험에 놓이기 전에 위험한 지역에 있는 페이지를 백업한다.
따라서, 본 발명에 따르면, a) 각 페이지의 각 위험 지역을 식별하는 단계; (b) 새로운 데이터를 기록하기 위해 적어도 하나의 비기록된 페이지를 선택하는 단계; 및 (c) 그의 위험지역이 적어도 하나의 기록된 페이지를 포함하는 각각의 비기록된 페이지에 대해, 각 상기 기록된 페이지를 로그로 복사하는 단계;를 포함하는 것을 특징으로 하는 복수의 페이지를 포함하는 메모리를 관리하는 방법이 제공된다.
또한, 본 발명에 따르면, 데이터 스토리지 시스템에 있어서, (a) 복수의 페이지를 포함하는 데이터 스토리지 매체; (b) 로그; 및 (c)(ⅰ) 상기 복수의 페이지 중 각 페이지의 각각의 위험 지역을 식별하는 단계; (ⅱ) 상기 새로운 데이터를 기록하기 위해 상기 복수의 페이지 중 적어도 하나의 비기록된 페이지를 선택하는 단계; 및 (ⅲ) 그의 위험 지역이 상기 복수의 페이지중 적어도 하나의 기록된 페이지를 포함하는 각각의 비기록된 페이지에 대해, 각각의 기록된 페이지를 상기 로그로 복사하는 단계를 포함하는 단계들에 의해 상기 복수의 페이지로 새로운 데이터를 기록하는 컨트롤러;를 포함하는 것을 특징으로 하는 데이터 스토리지 시스템이 제공된다.
또한, 본 발명에 따르면, 컴퓨터-판독가능한 스토리지 매체에 내장되고, 데이터 스토리지 매체의 복수의 페이지 중 적어도 하나에 새로운 데이터를 기록하기 위한 컴퓨터 판독가능한 코드를 가지는 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 컴퓨터 판독가능한 코드는, (a) 각 페이지의 각 위험 지역을 식별하기 위한 프로그램 코드; (b) 새로운 데이터를 기록하기 위해 적어도 하나의 비기록된 페이지를 선택하기 위한 프로그램 코드; 및 (c) 그의 위험지역이 적어도 하나의 기록된 페이지를 포함하는 각각의 비기록된 페이지에 대해, 각각의 기록된 페이지를 로그로 복사하는 프로그램 코드;를 포함하는 컴퓨터 판독가능한 코드를 가지는 것을 특징으로 하는 컴퓨터-판독가능한 스토리지 매체가 제공된다.
메모리를 관리하기 위한 본 발명의 기본 방법에 따라, 메모리의 각 페이지의 각 위험지역이 식별된다. 새로운 데이터가 메모리에 기록될 때, 하나 이상의 비기록된 페이지들이 새로운 데이터를 기록하기 위해 선택된다. 그것이 존재한다면, 선택된 페이지(들)의 위험지역(들)의 상기 기록된 페이지는, 로그로 복사된다. 상기 새로운 데이터는 그런다음 선택된 페이지(들)로 기록된다.
바람직하게는, 새로운 데이터가 한 페이지 이상이라면, 선택된 페이지로의 새로운 데이터의 기록은 거의 동시에 이루어진다.
바람직하게는, 위험지역(들)에 기록된 페이지(들)의 복사와 선택된 페이지(들)로의 새로운 데이터의 기록은 거의 동시에 이루어진다.
바람직하게는, 예를 들면, 메모리를 포함하는 시스템이 전력이 공급될 때, 메모리의 기록된 페이지에 저장된 데이터는 그들 데이터가 손상되었는 지 여부를 판정하도록 체크된다. 손상된 것으로 판정된 데이터는 로그로부터의 해당하는 데이터로 대체된다. 가장 바람직하게는, 상기 체크는 오류 검출 코드를 이용하여 이루어진다.
또는, 선택된 페이지에 기록된 새로운 데이터는 오직 위험 지역(들)에 기록된 모든 페이지가 로그로 복사된 후에만 상기와 같이 기록된다. 기록된 페이지가 로그로 복사될 때, 해당하는 플래그가 설정된다. 그의 위험지역이 그 기록된 페이지를 포함하는 선택된 페이지에 기록될 새로운 데이터가 상기와 같이 기록된 후에, 플래그가 클리어된다. 차후에, 예를 들면, 메모리를 포함하는 시스템이 전력이 공급된 후에, 설정된 플래그에 해당하는 기록된 페이지에 저장된 데이터는 상기 로그로부터의 해당하는 데이터로 대체된다.
새로운 데이터가 한 페이지이상의 범위라면, 선택된 비기록된 페이지는 순차적으로 또는 랜덤한 순서로 기록된다.
바람직하게는, 선택된 페이지로 새로운 데이터를 기록하는 것과, 로그로 기록된 페이지를 복사하는 것은 상이한 각각의 모드를 이용하여 이루어진다. 가장 바람직하게는, 상기 복사에 이용되는 모드는 상기 기록에 이용되는 모드 보다 메모리의 셀당 더 적은 비트를 기록한다. 예를 들면, 하기에 기술된 본 발명의 일실시예에서, 복사는 단일-레벨 셀 모드로 수행되고, 기록은 멀티-레벨 셀 모드로 수행된다.
바람직하게는, 모든 위험지역은 예를 들면 위험지역당 하나의 페이지와 같은, 동일한 수의 페이지를 포함한다. 또는, 적어도 2 개의 위험지역은 상이한 수의 페이지를 포함한다.
본 발명의 기본 데이터 스토리지 시스템은 복수의 페이지, 로그, 및 컨트롤러를 가진 데이터 스토리지 매체를 포함한다. 새로운 데이터를 복수의 페이지에 기록하기 위해, 상기 컨트롤러는 페이지의 각각의 위험지역을 식별하고, 상기 페이지들 중에 적어도 하나의 비기록된 페이지를 선택한다. 상기 컨트롤러는 그것이 존재한다면, 선택된 페이지(들)의 위험지역에서의 기록된 페이지들을 로그로 복사한다.
바람직하게는, 상기 데이터 스토리지 매체는 플래시 메모리와 같은 비휘발성 메모리이다. 바람직하게는, 이러한 플래시 메모리는 복수의 멀티-레벨 셀을 포함한다. 또한 바람직하게는, 이러한 플래시 메모리는 각각의 블록이 복수의 페이지의 각각의 하부 복수부를 포함하는 복수의 블록을 포함한다. 본 발명의 대안의 바람직한 실시예에 있어서, 상기 컨트롤러는 순차적 또는 랜덤한 순서 중 어느하나 만으로 각 블록의 페이지에 새로운 데이터를 기록한다.
바람직하게는, 상기 로그는 데이터 스토리지 매체의 일부이다.
바람직하게는, 상기 컨트롤러는 새로운 데이터를 선택된 비기록된 페이지(들)에 기록한다. 보다 바람직하게는, 상기 복사와 기록은 상이한 각각의 기록 모드를 이용하여 이루어진다. 가장 바람직하게는, 기록된 페이지(들)을 복사하는 데에 이용된 기록 모드는 새로운 데이터를 기록하는 데에 사용된 기록 모드보다 데이터 스토리지 매체의 셀당 더 적은 비트를 기록한다.
본 발명의 범위는 또한 본 발명의 기본 방법에 따라 데이터 스토리지 매체의 페이지에 새로운 데이터를 기록하기 위한 컴퓨터판독가능한 코드가 내장된 컴퓨터판독가능한 스토리지 매체를 포함한다.
본 발명은 예시의 방식으로만, 첨부한 도면을 참조하여 본 문에 설명된다.
도 1 A 및 1B는 비휘발성 데이터 스토리지용의 NAND 플래시 매체를 이용하는 종래 기술의 디바이스의 고-레벨 개략적인 블록도이다.
도 2는 멀티-레벨-셀 플래시 메모리의 블록의 예시적인 실시예의 개략도 이다.
도 3은 본 발명에 따라 새로운 데이터를 메모리에 기록하는 플로우 차트이다.
도 4는 본 발명에 따른 전력 공급시 손상 데이터의 복구의 플로우 차트이다.
도 5A 및 5B는 본 발명에 따라 변형된 도 1A 및 1B의 디바이스의 고-레벨 개략적인 블록도이다.
본 발명은 인터럽트된 기록 동작에 의해 이미 기록되어 있는 페이지에서의 데이터 손상을 방지하기 위해 페이지-기반 메모리를 관리하는 방법이다. 특히, 본 발명은 멀티-레벨 셀을 가진 플래시 메모리를 관리하는 데에 사용될 수 있다.
본 발명에 따른 메모리 관리의 원리 및 동작은 도면 및 하기의 설명을 참조하면 보다 더 이해될 것이다.
도 2를 다시 참조하면, 위험지역을 정의하는 규칙이 이전과는 상이한-블록의 페이지 번호 N의 위험지역이 N-1이 N-2로 구성되는(페이지 1의 위험지역이 페이지 0이고, 페이지 0의 위험지역은 비어있는, 블록의 첫번째 2개의 페이지를 제외하고), 예를 취한다. 상기 예에서 페이지에 대한 케이스는 페이지 1이었던 것과 같이 상이한 페이지의 위험지역이 모두 동일한 크기가 될 필요는 없다는 것이 강조되어야 한다. 일부 페이지는 2 페이지의 위험지역을 가지는 반면, 다른 페이지들은 3 페이지의 위험지역을 가질수도 있다. 일부 페이지들은 또한 양방향으로가는(전후로) 위험지역을 가질 뿐 아니라, 상기 예에서처럼 후방으로만 진행하기도 한다. 본 발명의 방법은 상기의 예에 제한되는 것은 아니고, 하기의 설명을 간략하게 하기 위해 본 간단한 예의 문장에 주어진 것이다.
도 3은 기록 명령이 본 발명의 방법에 따라 어떻게 핸들링되는지를 도시한다. 단계(100)에서 기록 명령은 단일 페이지 또는 여러 페이지 중 어느 하나인 데이터를 스토리지 시스템에 기록하기 위해 수신된다. 단계(110)에서 데이터가 기록될 물리적 위치가 배치된다. 기록할 물리적 페이지를 배치하는 것이 그 시스템의 특정한 알고리즘에 따라 플래시 관리 시스템에 의해 수행된다. 미국특허 6,678,785 또는 미국특허 5,937,425에 개시된 것과 같이, 상이한 플래시 관리 시스템은 상기 호스트 컴퓨터의 타겟인 논리적 어드레스를 물리적 어드레스로 매핑하기 위해 상이한 방법을 사용하지만, 본 발명의 방법은 이러한 모든 매핑 방법에 적용가능하다.
간단히 하기 위해, 우리는 여기서 타겟 물리적 어드레스와 같이 단계(110)에 위치한 물리적 페이지는 모두 하나의 블록 내에 상주한다고 가정한다. 이것이 아니라면, 동일한 로직이, 동일한 블록에 포함된 그들의 물리적 페이지의 각 서브그룹에 개별적으로 적용한다.
단계(120)에서, 타겟 물리적 페이지로의 기록이 일부 이미 기록되어있는 페이지를 위험에 놓이게 하는지 여부가 체크된다. 이것은 미리 기록되어 있는 페이지가 타겟 페이지 중 적어도 하나의 위험지역 내에 포함되는 지를 발견함으로써 수행된다. 예를 들면, 사용하기 위해 페이지 21 내지 페이지 63이 비어 있으면서, 도 2의 페이지 0 내지 20이 이미 기록된 것으로 가정한다. 5 페이지를 기록하도록 명령이 수신되고, 페이지 21 내지 25가 기록될 타겟 물리적 페이지로서 위치된다. 위험에 놓여진 이전에 기록된 페이지를 찾으면서, 우리는 다음의 사실을 알 수 있다:
a. 페이지 19 및 20은 페이지 21의 위험지역 내에 있다.
b. 페이지 20은 페이지 22의 위험지역 내에 있다.
c. 페이지 23은 그의 위험지역 내에 기록된 페이지를 포함하지 않는다.
d. 페이지 24는 그의 위험지역 내에 기록된 페이지를 포함하지 않는다.
e. 페이지 25는 그의 위험지역 내에 기록된 페이지를 포함하지 않는다.
결론은 기록된 페이지 19 및 20이 기록 동작에 의해 위험한 상태에 놓이지만, 페이지 0 내지 18 중에는 어떠한 것도 위험한 상태에 놓이지 않는다는 것이다. 본 발명의 방법은, 그것들이 동일한 개념의 위험지역에 따른다고 하더라도, 미국특허 6,988,175의 방법과 동일한 것은 아니라는 것을 유의해야한다. 양 방법에서, "이 타겟 페이지가 그의 위험지역 내에 이전에 기록되어 있는 페이지를 갖는가?"라고 질문한다. 그러나, 미국특허 6,988,175에서는, 주목하는 것은 "타겟 페이지의 위험지역 내에 기록되어있는 페이지가 있다면, 우리는 타겟 페이지를 스킵한다."라고 하는 반면에, 본 발명에서는 주목하는 것은 "타겟 페이지의 위험지역 내에 기록되어 있는 페이지가 있다면, 우리는 기록되어 있는 페이지를 백업한다."는 것이다.
단계(120)의 질문에 대한 답변이 이전에 기록되어 있는 페이지를 위험한 상태에 놓지않았다는 것이면(예를 들면 블록이 여전히 완벽하게 미사용이라면), 우리는 새로운 데이터가 타겟 물리적 페이지로 기록되는 단계(140)로 직접 이동한다. 그러나 상기 질문에 대한 답변이 위험지역에 페이지가 있다는 것이면, 우리는 단계(130)을 통해서 진행한다. 단계(130)에서, 위험지역(상기 예에서는 페이지 19 및 20)에 있는 페이지는 백업 로그로 복사된다. 그런 다음에만, 우리는 단계(140)으로 진행하고, 새로운 데이터를 타겟 물리적 페이지로 기록한다.
도 4는 백업 로그가 전력손실에 의한 데이터 손상으로부터 복구하는 데에 어떻게 사용되는 지를 도시한다. 단계(200)에서, 스토리지 시스템에 전력이 공급된다. 단계(210)에서, 전력 손실의 결과로써 페이지가 손상되었는지 여부가 체크된다. 이것은 데이터의 각 페이지에 일반적으로 연관된 오류 검출 코드(EDC)를 활성화함으로써 수행될 수 있다. 페이지 컨텐츠를 판독하고, 그 결과인 징후를 연산함으로써, 저장된 데이터가 유효한지 아닌지를 알아낸다. 손상된 페이지가 발견되지 않았다면, 상기 시스템은 단계(230)에서 정상 동작을 진행한다. 그러나, 적어도 한 페이지라도 손상된 것이 발견되면, 단계(220)는 기록동작 이전에 데이터가 저장된 백업 로그로부터 손상된 데이터를 복구하고, 이들 데이터를 도 3에 도시된 것과 같은 하나 이상의 비기록된 페이지에 기록한다.
이러한 방법들은 이전에 기록된 페이지의 복구를 보장하지만, 마지막 기록 명령에 의해 기록된 페이지를 보장하지는 않는다는 것에 유의해야한다. 상기 예에서, 전력이 페이지(21) 기록의 중간에서 중단되면, 그때 페이지 19 및 20은 유효하고, 도 4의 복구 프로시저가 완료되면 손상되지 않는 것으로 보장된다. 그러나 페이지 21은 백업되지 않았고, 손상이 발견되더라도 복구될 수 없다. 그러나 이것은 우리가 달성하기 원했던것, 즉 이전에 시스템에 저장된 데이터의 보호이지, 그의 기록이 예측되지 않게 중단되는 현재 새로운 데이터의 보호가 아니다.
상기 방법에 대한 변형은 페이지가 여전히 백업될 필요가 있는지 여부를 지시하는 플래그에 연관되는 백업 로그에서의 각 페이지를 갖는다. 도 3에서 페이지를 백업 로그로 기록할 때, 우리는 먼저 플래그를 "필요함"으로 설정한다. 기록 동작을 완료한 후에, 현재 동작에 의해 백업 로그로 복사된 모든 페이지는 "필요성 없음"으로 설정된다. 정전이 기록 동작의 중간에 발생하면, 백업 로그에서의 페이지는 "필요함" 플래그로 남겨지는 반면, 동작이 성공적으로 완료되었다면 상기 페이지들은 "필요성 없음"의 플래그로 남겨진다. 전력공급시, 백업 로그의 마지막 페이지의 플래그는, 적어도 하나의 페이지가 "필요함"으로 발견되면 우리가 정전이 발생한 것을 알고, "플래그된" 페이지를 포함하는 블록에 대한 복구를 시행하는 지 여부를 체크한다. 본 발명의 이러한 변형은 이론적으로는 랜덤하게 손상된 데이터가 EDC에 의한 것 정도로 식별될 수 없는 EDC 기술에 따른 것보다 더 신뢰성 있는 데이터 손상 검출을 제공한다.
상기 백업 로그는 로그를 구현하는 종래기술에 공지된 임의의 방식으로 구현된다. 한 구현은 백업된 페이지를 로그에 대해 할당된 플래시 영역에 순차적으로 기록하고, 상기 영역의 끝에 도달하면 다시 그 영역의 처음으로 복귀한다. 더이상 필요없는 블록의 불필요한 부분을 수집하는 하우스-키핑 동작이 또한 처리되어야 한다. 전력 중단이 백업 로그에 손상을 주지않는 다고 하더라도 주의를 해야한다. 이것은 로그의 일부 물리적 페이지들이 백업된 페이지들이 위험한 상태에 놓이지 않도록 보장하기 위해, 스킵되도록 하기 위해 미국특허 6,988,175의 방법으로 달성된다. 또는, 로그는, 위험 지역을 가지지 않음으로써 정전에 의한 데이터 손상에 대해 자유로운 모드의, 플래시 매체의 상이한 기록 모드를 이용하여 기록된다. 일 예는 멀티-레벨 셀(MLC)과 단일-레벨 셀(SLC) 모드 모두를 제공하는 플래시 메모리 디바이스를 이용하는 플래시 시스템이다. 이러한 디바이스는 본문에 그 전체가 설명을 위해 참조에 의해 통합된, Chen의 미국특허 제 6,456,528에 의해 개시된다. 상기 시스템에 저장된 정상적인 데이터는 높은 저장 밀도를 달성하기 위해 "리스키" MLC 모드를 이용하여 기록되는 반면, 상기 백업 로그는 위험 지역을 생성하지 않는 안전한 SLC 모드를 이용하여 기록된다. 이것은 또한 SLC 기록이 MLC 기록보다 훨씬 더 빠르기 때문에, 백업 로그를 기록할 때 소비하는 오버헤드 시간을 감소시키는 추가적인 이점을 가진다.
기록 명령이 다수의 페이지를 기록하기 위한 것일때 상기의 방법은 매우 고 효율적이라는 것에 유의하라. 일반적으로 이와 같은 경우에, 백업되어야만 하는 이미 기록되어 있는 페이지의 수는 기록되어 있는 페이지의 수보다 매우 더 작고, 그 결과 명령시 기록된 페이지당 상대적인 오버헤드는 보다 더 많은 페이지의 수 보다 더 작다. 단일 명령의 결과로서 다수의 페이지를 기록하는 것은 본 문에서는 이러한 페이지들을 "동시에" 기록하는 것으로 간주된다.
본 발명의 방법을 미국특허 6,988,175와 비교하면, 본 발명이 사용되지 않은 갭을 사용되지 않은 블록 내에 남겨놓고 결코 페이지를 스킵하지 않는한은, 본 발명이 미국특허 6,988,175보다 우월하다는 것을 이해할 것이다. 본 발명은 따라서, 플래시 메모리의 공간 활용의 효율면에서 미국특허 6,988,175에 비해 보다 우수하고, 또한 그의 로직을 복잡하게하는 갭을 처리할 필요가 없는 플래시 관리 시스템에 의해 핸들링하는 것이 보다 더 용이하다. 추가로, 본 발명은 다수의 경우에 매우 비효율적인 미국특허 6,988,175와는 달리, 상술한 예를 포함하는 임의의 종류의 위험 지역의 패턴에 효율적으로 적용가능하다.
도 5A는 도 1A의 종래기술의 디바이스와 유사한, 하나 이상의 NAND 플래시 매체(112)에 데이터를 저장하기 위해 호스트 디바이스에 의해 사용되는 본 발명의 플래시-기반 스토리지 디바이스(110)의 고-레벨 개략적인 블록도이다. 디바이스(110)의 동작은 RAM(116)과 보조 비휘발성 메모리(118)의 도움을 받아 마이크로프로세서-기반 컨트롤러(114)에 의해 제어된다. 이러한 목적을 위해, 플래시 디바이스(110) 및 호스트 시스템은 플래시 디바이스(110)에서의 공통 통신 포트(120)를 통해 통신한다. 디바이스(110)의 컴포넌트는 공통(115) 하우징에 함께 하우징된다.
종래 기술의 디바이스(10)와 유사하게, 플래시 디바이스(110)는 보조 비휘발성 메모리(118)에 저장된 펌웨어를 이용하여 블록 메모리 디바이스를 에뮬레이트한다. 정전의 경우의 손상에 대해 이들 데이터를 보호하기 위해, 보조 비휘발성 메모리(118)에 저장된 펌웨어는 또한 본 발명의 방법에 따라 손상의 위험에 있는 데이터를 백업 로그로 복사하고 또 그로부터 복사하는 코드를 또한 포함한다. NAND 플래시 매체(112)는 일반적인 데이터 스토리지에 사용되는 MLC 부분(106)과 백업 로그에 사용되는 SLC 부분(108)으로 분할된다. 본 발명은 호스트 디바이스의 소프트웨어 애플리케이션이 파일 관리 애플리케이션 또는 기타의 소프트웨어 애플리케이션이 되도록 허용하여, 랜덤한 순서로 본 발명의 디바이스(110)에 자유롭게 기록 명령을 전송하도록 하고, 상기 소프트웨어 애플리케이션이 NAND 플래시 매체(112)의 페이지들 사이의 위험한 관계를 무시하도록 허용한다. 본 발명의 방법은 전력 손실이 기록 명령을 인터럽트할 때 손상될 수 있는 페이지만이 상기 인터럽트된 기록 명령에 의해 기록되는 페이지라는 견지에서 전력 손실에 대해 완전한 보호를 제공한다. 모든 다른 페이지들은 유효성을 유지하는 것으로 보장된다.
도 5B는 도 1B의 종래 기술의 개인용 컴퓨터(10')와 유사한, 개인용 컴퓨터(110')의 고-레벨 부분적인 개략적인 블록도이고, 여기서 NAND 플래시 매체(112)는 긴 기간동안의 비휘발성 데이터 스토리지를 위한 자기 하드 디스크에 추가하거나, 또는 그에 대한 대체물로서 사용된다. 컨트롤러(114)는 지금 개인용 컴퓨터(110')의 중앙 처리 유닛을 나타낸다. 보조 메모리(118)는 지금, 부트 코드가 저장되는 바이오스와, 개인용 컴퓨터(110')의, 플래시 관리 시스템을 포함하는 운영체제를 저장하기 위한 자기 하드 디스크(그렇지 않으면, NAND 플래시 매체(112)가 자기 하드 디스크의 대체물이고, 이경우 운영체제는 NAND 플래시 매체(112)에 저장된다.)를 포함하는 개인용 컴퓨터(110')의 모든 다른 비휘발성 메모리를 나타낸다. NAND 플래시 매체(112), 컨트롤러(114), RAM(116), 보조 비휘발성 메모리(118), 및 개인용 컴퓨터(110')의 기타 다른 컴포넌트(도시되지 않음)들이 버스(119)를 통해 서로 통신한다.
보조 비휘발성 메모리(118) 또는 NAND 플래시 매체(112)에 개인용 컴퓨터(110')의 운영체제의 코드의 일부로서 저장되고, 컨트롤러(114)에 의해 실행되는 플래시 관리 소프트웨어는 NAND 플래시 매체(112)로의 기록 동작이 정전에 의해 인터럽트되는 경우에, NAND 플래시 매체(112)의 MLC 부분(106)에 미리 저장되어 있는 데이터의 손상을 방지하기 위해 본 발명의 플래시 관리 방법을 구현하는 코드를 포함한다. 특히, 손상의 위험이 있는 데이터가 상술한 바와 같이 NAND 플래시 매체(112)의 SLC부분(108)의 백업 로그로 복사되고 그로부터 복사된다.
디바이스(110 및 110')의 보조 비휘발성 메모리(118)(및 운영체제가 NAND 플래시 매체(112)에 저장되는 디바이스(110')의 구현에서의 디바이스(110')의 NAND 플래시 매체(112))는 본 발명의 방법을 구현하기 위한 컴퓨터판독가능한 코드가 내장된 컴퓨터판독가능한 스토리지 매체의 예이다.
본 발명이 제한된 수의 실시예에 대해 기술되었지만, 본 발명의 다수의 변형, 변조, 및 기타의 응용이 이루어질 수 있음이 이해될 것이다.

Claims (28)

  1. 복수의 페이지를 포함하는 플래시 메모리 내에서의 메모리 관리 방법에 있어서, 상기 복수의 페이지의 적어도 일부는 각각의 위험지역을 가지며, 상기 방법은,
    (a) 새로운 데이터를 기록하기 위해 적어도 하나의 비기록된 페이지를 선택하는 단계;
    (b) 선택된 비기록된 페이지의 위험지역 내의 적어도 하나의 페이지를 식별하는 단계로서, 상기 위험지역 내의 이 식별된 페이지의 각각이 기록된 페이지인지를 판단하기 위해 상기 위험지역 내의 이 식별된 페이지의 각각이 검사되는, 상기 식별하는 단계;
    (c) 그의 위험지역이 적어도 하나의 기록된 페이지를 포함하는 각각의 상기 선택된 비기록된 페이지에 대해, 각각의 상기 기록된 페이지로부터의 데이터를 로그로 복사하는 단계; 및
    (d) 상기 새로운 데이터를 상기 선택된 적어도 하나의 비기록된 페이지에 기록하는 단계를 포함하고,
    상기 로그는 상기 선택된 적어도 하나의 비기록된 페이지 및 상기 위험지역 내의 각각의 상기 식별된 페이지와는 구별되고, 상기 플래시 메모리의 일부분인 것을 특징으로 하는 메모리 관리 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 새로운 데이터가 한 페이지 이상의 범위일 경우, 상기 기록하는 단계는 동시에 실행되는 것을 특징으로 하는 메모리 관리 방법.
  4. 제 1 항에 있어서,
    상기 복사하는 단계 및 상기 기록하는 단계는 동시에 실행되는 것을 특징으로 하는 메모리 관리 방법.
  5. 제 1 항에 있어서,
    (e) 적어도 하나의 기록된 페이지에 저장된 데이터가 손상되었는지 여부를 체크하는 단계; 및
    (f) 상기 저장된 데이터가 손상되었다면, 손상된 데이터를 상기 로그로부터의 그에 대응하는 데이터로 대체하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  6. 제 5 항에 있어서,
    상기 체크하는 단계는 오류 검지 코드를 이용하여 실행되는 것을 특징으로 하는 메모리 관리 방법.
  7. 제 5 항에 있어서,
    상기 체크하는 단계 및 상기 대체하는 단계는 메모리를 포함하는 시스템에 전력이 공급될 때 실행되는 것을 특징으로 하는 메모리 관리 방법.
  8. 제 1 항에 있어서,
    비기록된 페이지에 기록될 상기 새로운 데이터는, 상기 비기록된 페이지의 상기 위험지역의 모든 기록된 페이지가 상기 로그로 복사된 후에만, 상기 비기록된 페이지에 기록되고,
    상기 로그에 복사되는 각각의 기록된 페이지에 대해, 상기 메모리 관리 방법은,
    (e) 해당하는 플래그를 설정하는 단계; 및
    (f) 그의 위험지역이 각각의 기록된 페이지를 포함하는 적어도 하나의 비기록된 페이지의 모든 페이지에 상기 새로운 데이터가 기록된 후에, 상기 해당하는 플래그를 클리어링 하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  9. 제 8 항에 있어서,
    (g) 설정된 상기 플래그의 각각에 대해, 각각의 상기 플래그에 해당하는 상기 기록된 페이지에 저장된 데이터를 상기 로그로부터의 해당하는 데이터로 대체하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  10. 제 9 항에 있어서,
    상기 대체하는 단계는 메모리를 포함하는 시스템에 전력이 공급될 때에 실행되는 것을 특징으로 하는 메모리 관리 방법.
  11. 제 1 항에 있어서,
    상기 새로운 데이터가 한 페이지 이상의 범위라면, 상기 선택하는 단계가 복수의 비기록된 페이지를 선택하는 단계를 포함하고,
    선택된 상기 복수의 비기록된 페이지는 순차적으로 기록되는 것을 특징으로 하는 메모리 관리 방법.
  12. 제 1 항에 있어서,
    상기 새로운 데이터가 한 페이지 이상의 범위라면, 상기 선택하는 단계가 복수의 비기록된 페이지를 선택하는 단계를 포함하고,
    선택된 상기 복수의 비기록된 페이지는 랜덤한 순서로 기록되는 것을 특징으로 하는 메모리 관리 방법.
  13. 제 1 항에 있어서,
    상기 복사하는 단계 및 상기 기록하는 단계는 상이한 각각의 기록 모드를 이용하여 실행되는 것을 특징으로 하는 메모리 관리 방법.
  14. 삭제
  15. 제 1 항에 있어서,
    모든 상기 위험지역은 동일한 수의 페이지를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  16. 제 15 항에 있어서,
    상기 위험지역의 각각은 하나의 페이지를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  17. 제 1 항에 있어서,
    상기 비기록된 페이지는 적어도 2개의 상기 위험 지역을 포함하고, 상기 적어도 2개의 위험지역은 상이한 수의 페이지를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  18. 데이터 저장 시스템에 있어서,
    (a) 복수의 페이지를 포함하고, 상기 복수의 페이지의 적어도 일부는 각각의 위험지역을 가지는, 데이터 저장 매체;
    (b) 상기 데이터 저장 매체 내의 로그; 및
    (c) (ⅰ) 새로운 데이터를 기록하기 위해 상기 복수의 페이지의 적어도 하나의 비기록된 페이지를 선택하는 단계로서, 이 선택된 적어도 하나의 비기록된 페이지는 상기 로그와 구별되는, 상기 선택하는 단계;
    (ⅱ) 선택된 비기록된 페이지의 위험지역 내에서 적어도 하나의 페이지를 식별하는 단계로서, 이 식별된 페이지가 기록된 페이지인지를 판단하기 위해 상기 위험지역 내의 각각의 식별된 페이지가 검사되고, 이 때 상기 위험지역 내의 상기 식별된 페이지는 상기 로그와 구별되는, 상기 식별하는 단계;
    (ⅲ) 그의 위험지역이 상기 복수의 페이지의 적어도 하나의 기록된 페이지를 포함하는 각각의 상기 선택된 비기록된 페이지에 대해, 각각의 상기 기록된 페이지로부터의 데이터를 상기 로그로 복사하는 단계; 및
    (ⅳ) 상기 새로운 데이터를 상기 복수의 페이지의 상기 선택된 적어도 하나의 비기록된 페이지에 기록하는 단계에 의해 상기 새로운 데이터를 상기 복수의 페이지에 기록하는 컨트롤러를 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  19. 제 18 항에 있어서,
    상기 데이터 저장 매체는 비휘발성인 것을 특징으로 하는 데이터 저장 시스템.
  20. 제 19 항에 있어서,
    상기 데이터 저장 매체는 플래시 메모리인 것을 특징으로 하는 데이터 저장 시스템.
  21. 제 20 항에 있어서,
    상기 플래시 메모리는 복수의 멀티-레벨 셀을 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  22. 제 20 항에 있어서,
    상기 플래시 메모리가 복수의 블록을 포함하여, 상기 복수의 블록의 각 블록이 상기 복수의 페이지의 각각의 하부의 복수부들을 포함하고,
    상기 컨트롤러는 상기 새로운 데이터를 순차적으로만 상기 각 블록의 상기 페이지의 하부의 복수부들에 기록하는 것을 특징으로 하는 데이터 저장 시스템.
  23. 제 20 항에 있어서,
    상기 플래시 메모리가 복수의 블록을 포함하여, 상기 복수의 블록의 각 블록이 상기 복수의 페이지의 각각의 하부의 복수부들을 포함하고,
    상기 컨트롤러는 상기 새로운 데이터를 랜덤한 순서로 상기 각 블록의 상기 페이지의 하부의 복수부들에 기록하는 것을 특징으로 하는 데이터 저장 시스템.
  24. 삭제
  25. 삭제
  26. 제 18 항에 있어서,
    상기 로그로 복사하는 단계 및 상기 적어도 하나의 비기록된 페이지에 기록하는 단계는 상이한 각각의 기록 모드를 이용하여 실행되는 것을 특징으로 하는 데이터 저장 시스템.
  27. 삭제
  28. 삭제
KR1020077028919A 2005-05-12 2006-05-11 전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법 KR101215864B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US67982505P 2005-05-12 2005-05-12
US60/679,825 2005-05-12
US11/370,942 US7275140B2 (en) 2005-05-12 2006-03-09 Flash memory management method that is resistant to data corruption by power loss
US11/370,942 2006-03-09

Publications (2)

Publication Number Publication Date
KR20080008419A KR20080008419A (ko) 2008-01-23
KR101215864B1 true KR101215864B1 (ko) 2013-01-02

Family

ID=37396974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077028919A KR101215864B1 (ko) 2005-05-12 2006-05-11 전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법

Country Status (7)

Country Link
US (1) US7275140B2 (ko)
EP (1) EP1883884B1 (ko)
JP (1) JP4966965B2 (ko)
KR (1) KR101215864B1 (ko)
CN (1) CN101198939B (ko)
AT (1) ATE537504T1 (ko)
WO (1) WO2006120686A2 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071973A1 (en) * 2000-01-06 2008-03-20 Chow David Q Electronic data flash card with various flash memory cells
US20090100290A1 (en) * 2005-08-22 2009-04-16 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR100791006B1 (ko) * 2006-12-06 2008-01-03 삼성전자주식회사 싱글레벨 셀 및 멀티레벨 셀을 구비하는 반도체 메모리장치 및 그 구동방법
JP4563992B2 (ja) * 2006-12-26 2010-10-20 株式会社京都ソフトウェアリサーチ 多値フラッシュメモリおよび多値フラッシュメモリへのデータ書き込み方法
KR100877610B1 (ko) * 2007-01-23 2009-01-09 삼성전자주식회사 페이지 데이터 저장 방법과 저장 장치
US20080189473A1 (en) * 2007-02-07 2008-08-07 Micron Technology, Inc Mlc selected multi-program for system management
KR100889781B1 (ko) 2007-04-30 2009-03-20 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
KR100873825B1 (ko) 2007-05-02 2008-12-15 삼성전자주식회사 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법
KR101300821B1 (ko) * 2007-07-04 2013-08-26 삼성전자주식회사 비휘발성 메모리의 데이터 손실을 방지하기 위한 장치 및방법
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
JP4703673B2 (ja) * 2008-03-12 2011-06-15 株式会社東芝 メモリシステム
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
JP2009211215A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US20090287893A1 (en) * 2008-05-16 2009-11-19 Skymedi Corporation Method for managing memory
US20120311243A1 (en) * 2008-05-30 2012-12-06 Ite Tech. Inc. Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
TW200949840A (en) * 2008-05-30 2009-12-01 Ite Tech Inc Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
US20090319721A1 (en) * 2008-06-19 2009-12-24 Silicon Motion, Inc. Flash memory apparatus and method for operating the same
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI386803B (zh) * 2008-07-02 2013-02-21 Silicon Motion Inc 快閃記憶卡及快閃記憶體預防資料毀損的方法
US8074012B2 (en) * 2008-07-02 2011-12-06 Silicon Motion, Inc. Flash memory apparatus and method for securing a flash memory from data damage
US8762661B2 (en) * 2008-09-18 2014-06-24 Seagate Technology Llc System and method of managing metadata
US7962801B2 (en) * 2008-10-15 2011-06-14 Silicon Motion, Inc. Link table recovery method
CN101727397B (zh) * 2008-10-20 2012-06-27 群联电子股份有限公司 区块管理与更换方法、闪存储存系统及其控制器
US8103631B2 (en) * 2008-11-19 2012-01-24 Sandisk Il Ltd Merging files on storage and retrieve
JP4551958B2 (ja) * 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
US9098396B2 (en) * 2009-02-13 2015-08-04 Sandisk Il Ltd. Enhancement of efficiency in power failure handling in flash memory
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
US8966176B2 (en) 2010-05-27 2015-02-24 Sandisk Il Ltd. Memory management storage to a host device
US8738844B2 (en) * 2011-04-14 2014-05-27 Macronix International Co., Ltd. Program method, data recovery method, and flash memory using the same
US20120297248A1 (en) * 2011-05-17 2012-11-22 Alan David Bennett Block write handling after corruption
KR101856506B1 (ko) * 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US20130205066A1 (en) * 2012-02-03 2013-08-08 Sandisk Technologies Inc. Enhanced write abort management in flash memory
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US8923045B2 (en) 2012-05-31 2014-12-30 Seagate Technology Llc Multi-level cell (MLC) update with protected mode capability
US20140013031A1 (en) * 2012-07-09 2014-01-09 Yoko Masuo Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus
US9053011B2 (en) 2012-09-28 2015-06-09 Sandisk Technologies Inc. Selective protection of lower page data during upper page write
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
JP5695112B2 (ja) * 2013-03-18 2015-04-01 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置
US9305655B2 (en) 2013-09-27 2016-04-05 Virtium Technology, Inc. Solving MLC NAND paired page program using reduced spatial redundancy
US8819337B1 (en) * 2014-04-16 2014-08-26 Sandisk Technologies Inc. Storage module and method for determining whether to back-up a previously-written lower page of data before writing an upper page of data
US9715345B2 (en) 2014-04-25 2017-07-25 Micron Technology, Inc. Apparatuses and methods for memory management
CN104503707B (zh) * 2014-12-24 2018-03-06 华为技术有限公司 读取数据的方法以及装置
KR102222444B1 (ko) 2015-03-05 2021-03-04 삼성전자주식회사 전력 상태 정보를 사용하는 저장 장치 및 그것의 동작 방법
US9558839B2 (en) * 2015-03-09 2017-01-31 Toshiba Corporation Power fail saving modes in solid state drive with MLC memory
KR20160133283A (ko) * 2015-05-12 2016-11-22 삼성전자주식회사 비휘발성 메모리 저장장치를 운영하는 방법 및 이를 구현한 전자장치
US10055236B2 (en) 2015-07-02 2018-08-21 Sandisk Technologies Llc Runtime data storage and/or retrieval
US10303571B2 (en) 2015-11-04 2019-05-28 Intel Corporation Data recovery in memory devices
CN106776362B (zh) * 2015-11-24 2019-12-03 中芯国际集成电路制造(上海)有限公司 存储器的控制方法及装置
KR102641107B1 (ko) 2016-07-29 2024-02-27 삼성전자주식회사 스토리지 장치, 이를 포함하는 시스템 및 그 동작 방법
CN106227623B (zh) * 2016-08-03 2019-03-26 深圳市智行畅联科技有限公司 一种基于智能终端的文件格式及数据掉电修复方法及系统
US10048887B2 (en) 2016-10-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for single level cell caching
US10977186B2 (en) * 2017-11-21 2021-04-13 Micron Technology, Inc. Last written page searching
WO2019112907A1 (en) 2017-12-06 2019-06-13 Rambus Inc. Error-correction-detection coding for hybrid memory module
US11163679B2 (en) * 2018-04-04 2021-11-02 SK Hynix Inc. Garbage collection strategy for memory system and method of executing such garbage collection
TWI669610B (zh) * 2018-06-13 2019-08-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11106372B2 (en) 2019-12-27 2021-08-31 Micron Technology, Inc. Asynchronous power loss handling approach for a memory sub-system
KR20220153863A (ko) 2021-05-12 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11960757B2 (en) 2021-10-04 2024-04-16 Samsung Electronics Co., Ltd. Flash translation layer with rewind
US11893243B2 (en) * 2021-10-06 2024-02-06 Western Digital Technologies, Inc. Storage system and method for program reordering to mitigate program disturbs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030063144A (ko) * 2002-01-18 2003-07-28 쌘디스크 코포레이션 인접 메모리 셀과의 필드 커플링에 의해 영향을 받는메모리 셀로부터 데이터를 복원시키는 기법
KR20040017276A (ko) * 2001-07-25 2004-02-26 소니 가부시끼 가이샤 불휘발성 메모리 및 불휘발성 메모리의 데이터 재기록 방법
US20040268063A1 (en) * 2003-06-30 2004-12-30 M-Systems Flash Disk Pioneers, Ltd. Flash memory management method that is resistant to data corruption by power loss

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JP3925944B2 (ja) * 1996-07-10 2007-06-06 エルピーダメモリ株式会社 不揮発性半導体記憶装置
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6773083B2 (en) * 2001-08-29 2004-08-10 Lexmark International, Inc. Method and apparatus for non-volatile memory usage in an ink jet printer
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6977847B2 (en) * 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
US7702659B2 (en) * 2003-03-27 2010-04-20 Sandisk Il Ltd. Robust, self-maintaining file system
JP4874566B2 (ja) * 2005-04-11 2012-02-15 株式会社東芝 半導体記憶装置
US20090100290A1 (en) * 2005-08-22 2009-04-16 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method
JP2007094921A (ja) * 2005-09-30 2007-04-12 Toshiba Corp メモリカードとその制御方法
JP2007109352A (ja) * 2005-10-17 2007-04-26 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置およびその駆動方法。

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040017276A (ko) * 2001-07-25 2004-02-26 소니 가부시끼 가이샤 불휘발성 메모리 및 불휘발성 메모리의 데이터 재기록 방법
KR20030063144A (ko) * 2002-01-18 2003-07-28 쌘디스크 코포레이션 인접 메모리 셀과의 필드 커플링에 의해 영향을 받는메모리 셀로부터 데이터를 복원시키는 기법
US20040268063A1 (en) * 2003-06-30 2004-12-30 M-Systems Flash Disk Pioneers, Ltd. Flash memory management method that is resistant to data corruption by power loss

Also Published As

Publication number Publication date
KR20080008419A (ko) 2008-01-23
JP2008544345A (ja) 2008-12-04
US7275140B2 (en) 2007-09-25
CN101198939A (zh) 2008-06-11
EP1883884A2 (en) 2008-02-06
EP1883884B1 (en) 2011-12-14
WO2006120686A3 (en) 2007-11-01
CN101198939B (zh) 2011-11-23
ATE537504T1 (de) 2011-12-15
WO2006120686A2 (en) 2006-11-16
EP1883884A4 (en) 2010-10-27
US20060259718A1 (en) 2006-11-16
JP4966965B2 (ja) 2012-07-04

Similar Documents

Publication Publication Date Title
KR101215864B1 (ko) 전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법
US7603525B2 (en) Flash memory management method that is resistant to data corruption by power loss
TWI419161B (zh) 儲存管理資訊之記憶體系統及控制其之方法
KR101392701B1 (ko) 메모리 장치를 위한 삽입된 매핑 정보
JP4256175B2 (ja) 不揮発性半導体メモリ
US6381176B1 (en) Method of driving remapping in flash memory and flash memory architecture suitable therefor
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US9262335B2 (en) Re-building mapping information for memory devices
TWI419159B (zh) 記憶體系統
TWI418983B (zh) 記憶體系統及控制記憶體系統之方法
US8108594B2 (en) Memory system
KR100932801B1 (ko) 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체
Niijima Design of a solid-state file using flash EEPROM
US8885406B2 (en) Memory device, memory control device, and memory control method
JPH1031611A (ja) 不揮発性メモリ記憶媒体用ファイルシステム
JP5264459B2 (ja) 半導体記憶装置
JP2009211188A (ja) メモリシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B601 Maintenance of original decision after re-examination before a trial
E801 Decision on dismissal of amendment
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20100527

Effective date: 20120117

GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee