KR20040038712A - 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블럭 - Google Patents

비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블럭 Download PDF

Info

Publication number
KR20040038712A
KR20040038712A KR1020030075147A KR20030075147A KR20040038712A KR 20040038712 A KR20040038712 A KR 20040038712A KR 1020030075147 A KR1020030075147 A KR 1020030075147A KR 20030075147 A KR20030075147 A KR 20030075147A KR 20040038712 A KR20040038712 A KR 20040038712A
Authority
KR
South Korea
Prior art keywords
memory
signature
designated
power down
memory system
Prior art date
Application number
KR1020030075147A
Other languages
English (en)
Inventor
로버트씨. 창
바만 콰와미
파시드 사벳-샤기
세르게이 유딘
Original Assignee
샌디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32094175&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20040038712(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20040038712A publication Critical patent/KR20040038712A/ko

Links

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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/1417Boot up procedures
    • 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
    • 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
    • G11C16/20Initialising; Data preset; Chip identification
    • 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/30Power supply 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/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/1441Resetting or repowering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Power Sources (AREA)

Abstract

비휘발성 메모리의 전원 공급 프로세스가 효율적으로 발생하도록 인에이블하는 방법 및 장치가 개시된다. 본 발명의 일 성향에 따라, 적어도 하나의 지정된 메모리 영역을 가지는 비휘발성 메모리를 포함하는 메모리 시스템을 사용하기 위한 방법은 메모리 시스템에 전원을 제공하는 단계, 상기 비휘발성 메모리를 초기화시키는 단계, 및 제 1 서명을 상기 지정된 메모리 영역에 기록하는 단계를 포함한다. 제 1 서명은 메모리 시스템이 성공적으로 기화되었는지를 나타내도록 배치된다. 일 실시예에서, 상기 방법은 또한 메모리 시스템에서 전원 차단 프로세스를 실행하는 단계와 상기 전원 차단 프로세스가 실행되었는지를 나타내는 제 2 서명을 상기 지정된 메모리 영역에 기록하는 단계를 포함한다.

Description

비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블럭{POWER MANAGEMENT BLOCK FOR USE IN A NON-VOLATILE MEMORY SYSTEM}
본 출원은 2002년 10월 28일에 특허된 미국 잠정 특허 출원 번호 60/422,166에 우선하며, 본 명세서에서 참조로서 통합된다.
관련 출원의 상호 참조
본 발명은 계류중인 미국 특허 출원 10/281,739, 10/281,823, 10/281,670, 10/281,824, 10/281,631, 10/281,855, 10/281,762, 10/281,696, 10/281,626, 및 10/281,804 뿐만 아니라, 각각 2002년 10월 28일에 특허된 계류중인 미국 잠정 특허 출원 60/421,910, 60/421,725, 60/421,965, 60/421,746, 및 60/421,911에 관한 것이며, 본 명세서에서 참조로서 통합된다.
본 발명은 일반적으로 대용량 디지털 데이터 저장 시스템에 관한 것이다. 특히, 본 발명은 메모리 전원이 켜진 시스템이 이전에 정상적으로 또는 비정상적으로 전원이 꺼졌는지의 여부에 관하여 결정하는 것을 효율적으로 인에이블하기 위한 시스템 및 방법에 관한 것이다.
플래시 메모리 저장 시스템과 같은 비휘발성 메모리 시스템의 사용은 상기 메모리 시스템의 소형의 물리적 크기와 비휘발성 메모리의 반복적인 재프로그래밍 능력때문에 증가하고 있다. 플래시 메모리 저장 시스템의 소형의 물리적 크기는 장치내의 상기 시스템의 사용이 널리 유행되도록 한다. 플래시 메모리 저장 시스템을 사용하는 장치는 디지털 카메라, 디지털 캠코더, 디지털 음향기, 포켓용 개인 컴퓨터, 및 위성 위치 확인 시스템을 포함하지만, 이에 제한되지는 않는다. 플래시 메모리 저장 시스템내에 포함된 비휘발성 메모리의 반복적인 재프로그래밍 능력은 플래시 메모리 저장 시스템이 사용되고 재사용되도록 인에이블한다.
일반적으로, 플래시 메모리 저장 시스템은 플래시 메모리 카드 및 플래시 메모리 칩세트를 포함할 수 있다. 플래시 메모리 칩 세트는 일반적으로 플래시 메모리 부분과 제어기 부분을 포함한다. 일반적으로, 플래시 메모리 칩세트는 삽입형 시스템으로 조립되도록 배치될 수 있다. 상기와 같은 조립품 또는 호스트 시스템의 제작자는 일반적으로 부분 형태의 플래시 메모리 뿐만 아니라 다른 부분도 획득한 후, 플래시 메모리 및 다른 성분을 호스트 시스템에 어셈블링한다.
메모리 시스템의 전원이 꺼지는 경우, 전원이 꺼지는 것은 사용자가 메모리 시스템을 정지하거나 메모리 시스템에서의 전력 손실이 존재하기 때문에 발생할 수 있다. 만약 사용자가 메모리 시스템의 전원을 끄기로 결정하면, 일반적으로 메모리 시스템은 사실상 모든 현재 프로세스를 종료하며, 예를 들어 메모리 시스템은 메모리 시스템과 관련된 디렉토리에 호스트 시스템으로부터의 파일을 기록하는 프로세스를 종료한다. 만약 전원이 꺼지는 것이 예를 들어 전원 장애와 같이 예기치 못하거나 뜻밖의 전원 손실 때문에 발생한다면, 그후에 현재 프로세스는 종료되지 않거나, 대신 일반적으로 중단된다.
예를 들면 메모리 시스템에 전원을 중단하도록 사용자 요청에 응답하는 "정상적인" 환경에서 전원이 꺼진 메모리 시스템은 일반적으로 수행될 디스크 스캔 또는 데이터 복구를 요구하지 않으며, 이와 같이 전원 중단 요청이 수신되는 시간에 발생하는 모든 프로세스는 종료된다. 이는 일반적으로 "정상 차단" 또는 "정상 전원 차단"이라 참조된다. 그러나, 예를 들면, 전원 장애, 배터리 방전, 또는 사고로 인한 전원 중단과 같은 "비정상적인"환경에서 메모리 시스템이 전원 차단되는 것은 일반적으로 당업자에 의해 통지되는 것과 같이 수행될 디스크 스캔 및 데이터복구를 요구한다. 비정상적인 상황에서의 전원 차단은 일반적으로 "비정상 차단" 또는 "비정상 전원 차단"이라 참조된다.
종래의 플래시 비휘발성 메모리 시스템에서, 일반적으로 메모리 시스템은 전원 차단이 예를 들어 의도된 사용자, 차단, 또는 전원 장애 때문에 발생되는지를 결정하는 것을 결정할 수 는 없다. 결과적으로, 예를 들어 윈도우/DOS 환경내의 "sandisk" 프로세스와 같은 상대적으로 시간 소모를 복구하는 프로세스는 일반적으로 프로세스가 정상적으로 전원이 차단되든지 비정상적으로 전원이 차단되든지간에 메모리 시스템이 전원 공급되는 각 시간마다 적용된다. sandisk 또는 유사한 프로세스를 메모리 시스템이 비정상적 환경에서 이전에 차단된 시점에 적용시키는 것은 데이터 복구가 발생하도록 인에이블하는 반면, 프로세스를 메모리 시스템이 정상적인 환경에서 차단된 시점에 적용하는 것은 복구 프로세스가 효율면에서 불필요한 것처럼 비효율적일 수 있다.
그러므로, 메모리 시스템이 이전에 정상적으로 차단되었든지 또는 비정상적으로 차단되었든지간에 메모리 시스템이 전원 공급될 때 결정을 인에이블하는 프로세스 및 시스템이 바람직하다. 즉, 메모리 시스템이 정상적으로 차단된 시간에 데이터를 복구시키는 것과 관련된 프로세스를 메모리 시스템이 실행하지 않고, 비정상적으로 차단된 메모리 시스템에 관련된 데이터가 메모리 시스템이 전원 공급되는 시간에 복고되도록 하기 위한 효율적인 방법이 요구된다.
본 발명은 비휘발성 메모리의 전원 공급 프로세스가 효율적으로 발생하도록인에이블하기 위한 시스템 및 방법에 관한 것이다. 본 발명의 일 성향에 따라, 적어도 하나의 지정된 메모리 영역을 가지는 비휘발셩 메모리를 포함하는 메모리 시스템을 사용하기 위한 방법은 메모리 시스템에 전원을 제공하는 단계, 비휘발성 메모리를 초기화시키는 단계, 및 지정된 메모리 영역에 제 1 서명을 기록하는 단계를 포함한다. 제 1 서명은 메모리 시스템이 성공적으로 초기화되었음을 나타내도록 배치된다. 일 실시예에서, 상기 방법은 또한 메모리 시스템상의 프로세스를 전원을 차단하는 것을 실행하는 단계, 및 전원 차단 프로세스가 실행되었음을 나타내도록 지정된 메모리 영역에 제 2 서명을 기록하는 단계를 포함한다.
전원 관리 블럭과 같이 초기화 및 전원 차단 서명을 포함하도록 배치되는 지정된 메모리 영역은 비휘발성 메모리 시스템으로부터의 전원의 이전 소거가 요청된 전원 차단 때문인지 또는 전원 장애 때문인지를 효율적으로 결정하도록 인에이블한다. 전원 관리 블럭이 NAND 플래시 메모리와 같은 비휘발성 메모리가 전원 공급되는 시간에 액세스되면, 전원 관리 블럭의 컨텐츠는 가장 최근의 이전 전원 차단이 요청된 것인지 또는 전원 장애 때문인지를 결정하도록 효율적으로 스캐닝되거나 획득될 수 있다. 예를 들어, 전원 차단 서명이 설정되면, 일반적으로 이전 전원 차단이 요청되도록 표시된다. 따라서, 메모리 또는 데이터 복구 프로세스는 일반적으로 요구되지 않는다. 선택적으로, 전원 차단 또는 차단 서명이 설정되지 않고 초기화 또는 전원 공급 서명이 설정되면, 일반적으로 이전 전원 차단이 전원 장애 때문이라고 표시된다. 따라서, 데이터 복구 프로세스가 실행될 수 있다. 실질적으로 예를 들어 이전에 전원 장애가 발생한 시간과 같이, 프로세스가 비휘발성 메모리에 의해 요구되는 시각에만 전원이 공급될 때 시간-소비 데이터 복구 프로세스를 구동 또는 실행하는 것은 효율면에서 어떤 데이터 복구도 요구되지 않을때 프로세스가 취소될 수 있는 것처럼 비휘발성 메모리가 더 효율적으로 사용되도록 인에이블한다.
본 발명의 또다른 성향에 따라, 지정된 메모리 영역을 가지는 비휘발성 메모리를 포함하는 메모리 시스템을 사용하기 위한 방법은 메모리 시스템에 전원을 제공하는 단계; 메모리 시스템이 실질적으로 정상 전원 차단 프로세스를 이전에 실행한 시각을 결정하는 단계, 및 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행하지 않았음이 결정될 때 비휘발셩 메모리 시스템에서 제 `1 프로세스를 수행하는 단계를 포함한다. 제 1 프로세스는 일반적으로 비휘발성 메모리의 사용을 준비하도록 배치된다. 결국, 상기 방법은 실질적으로 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행하였음이 결정될 때 비휘발성 메모리가 사용되도록 인에이블하는 단계를 포함한다.
일 실시예에서, 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시각을 결정하는 단계는 지정된 메모리 영역이 정상적인 전원 차단 프로세스가 이전에 발생하였음을 나타내는 제 1 서명을 포함하는 시각을 결정하는 단계를 포함한다. 상기 실시예에서, 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시각을 결정하는 단계는 또한 지정된 메모리 영역이 상기 메모리 시스템이 이전에 초기화 프로세스를 실행하였음을 나타내는 제 2 서명을 포함하는 시각을 결정하는 단계를 포함한다. 지정된 메모리 영역이 제 2서명과 제 1 서명을 포함하지 않음이 결정되면, 제 1 프로세스는 초기화 프로세스가 될 수 있다. 선택적으로, 지정된 메모리 영역이 제 2 서명을 포함하고 제 1 서명을 포함하지 않는 것이 결정되면, 제 1 프로세스는 데이터 복구 프로세스가 될 수 있다.
본 발명의 상기 장점 및 다른 장점은 도면을 통해 더 자세히 설명된다.
도 1a는 비휘발셩 메모리를 포함하는 일반적인 호스트 시스템을 설명하는 다이어그램이다.
도 1b는 예를 들면 도 1a의 메모리 장치(120)와 같은 메모리 장치를 설명하는 다이어그램이다.
도 1c는 삽입형 비휘발셩 메모리를 포함하는 호스트 시스템을 설명하는 다이어그램이다.
도 2는 본 발명의 일 실시예에 따른 비휘발셩 메모리 부분을 설명하는 다이어그램이다.
도 3a는 본발명의 일 실시예에 따른 초기화 서명을 포함하는 전원 관리 블럭을 설명하는 다이어그램이다.
도 3b는 본 발명의 일 실시예에 따른 초기화 서명 및 차단 서명을 사용하며 예를 들면 도 3a의 전원 관리 블럭(304)과 같은 전원 관리 블럭을 설명하는 다이어그램이다.
도 4는 본 발명의 일 실시예에 따른 초기에 사용하는 비휘발성 메모리 부분에 관련된 단계를 나타내는 프로세스 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 이전에 전원 차단된 메모리 부분을 사용하는 방법에 관련된 단계를 나타내는 프로세스 흐름도이다.
도 6은 본 발명의 일 실시예에 따라 비휘발성 메모리의 호스트 시스템 영역 및 데이터 영역을 설명하는 다이어그램이다.
도 7은 본 발명의 일 실시예에 따라 윈도우 또는 DOS와 같은 파일 할당 테이블 파일 시스템을 사용하여 호스트 시스템에 관련된 파일을 비휘발성 메모리에 기록하는 단계와 관련된 단계를 나타내는 프로세스 흐름도이다.
도 8은 본 발명의 일 실시예에 따라 단일 논리 블럭과 관련되는 물리 블럭을 식별하고 처리하는 방법에 관련된 단계를 나타내는 프로세스 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 시스템 구조를 나타내는 블럭 다이어그램이다.
<도면의 주요 부분에 대한 부호의 설명>
104 : 버스108 : 마이크로프로세서
112 : RAM116 : 입력/출력
120 : 비휘발성 메모리 장치124 : 비휘발성 메모리
128 : 메모리 제어기130 : 인터페이스
메모리 시스템의 전원 손실은 일반적으로 메모리 시스템내에 다수의 문제를 일으킬 수 있다. 상기 문제는 파일을 플래시 메모리에 기록하는 프로세스 동안 전원이 손실되면 데이터가 손실되는 것을 포함하지만 이에 제한되지는 않는다. 전원 손실 때문에 발생하는 문제를 고치기 위해, 데이터 보전(integrity)을 유지하기 위해 메모리 시스템의 실질적인 전원 공급 시에 복구 동작이 실행될 수 있다. 플래시 메모리가 기록 중에 전원 손실을 경험하면, 데이터는 메모리에 부정확하게 프로그래밍될 수 있다. 파일 할당 테이블(FAT) 또는 디렉토리와 같은 시스템 영역 내에 잘못된 데이터가 존재하는 경우, 플래시 메모리는 호스트로 통지될 수 없다. 성공적인 복구 프로세스는 플래시 메모리가 사용 가능한 상태로 복귀되도록 할 것이다. 만약 파일이 부분적으로 기록되면, 기록되지 않은 부분은 일반적으로 존재하지 않는 것으로 간주된다. 기록된 부분은 임시파일로 사용되어 사용자가 재조사하고, 폐기하고, 생성하거나, 또다른 파일로 병합하도록 할 수 있다. 일반적으로, 최종 차단과 관련된 조건을 알지 못하면, 복구 동작은 메모리 시스템이 전원 공급되는 시간마다, 심지어는 메모리 시스템이 차단된 가장 최근 시간에 정상적인 전원차단이 발생되는 경우와 같이 동작이 불필요한 경우에 수행될 수 있다.
비휘발성 메모리 부분과 관련하여 정상적인 전원 차단과 비정상 적인 전원 차단을 구분하는 능력은 전원 공급 프로세스가 더 효율적으로 발생하도록 인에이블한다. 예를 들어, 상대적인 시간을 소비하는 sandisk 동작은 메모리 부분의 이전 전원 차단이 정상적인 것으로 결정되면 실질적으로 회피될 수 있다. 만약 이전 전원 차단이 비정상적인 것으로 결정되면, sandisk 동작은 손실된 메모리를 재생성 하도록 사용될 수 있다. 만약 전원 장애와 같은 정상적인 전원 차단이 발생하지 않는 경우와 같이 상기 프로세스가 요구지 않는다면, sandisk 동작과 같은 메모리 복구 프로세스가 발생하는 것을 실질적으로 방지함으로써, 전체적인 전원 공급 프로세스는 더 효율적으로 발생할 수 있다.
예를 들면 비휘발성 메모리 시스템의 지정된 섹션과 같은 비휘발성 메모리 시스템내에서 초기화 및 전원 차단 서명을 유지하는 것은 비휘발성 메모리 시스템으로부터의 이전의 전원 소거가 요청된 전원 차단 때문인지 아니면 전원 장애 때문인지를 효율적으로 결정하도록 인에이블한다. 예를 들어, 요청된 전원 차단과 같이 정상적인 상황에 전원 차단이 발생하는 임의의 시간에 전원 차단이 정상적인 상황에 발생했음을 나타내는 전원 차단 서명은 저장될 수 있다. 따라서, 상기와 같은 전원 차단 서명이 다음 전원 공급 프로세스 동안 설정되는 경우, 전원 차단 서명은 이전 전원 차단이 정상적인 상황에 발생했는지와 메모리 복구 프로세스가 요구되지 않았는지를 결정하도록 사용될 수 있다. 일 실시예에서, 예를 들면, 전원 관리 블럭과 같이 메모리 부분 또는 칩의 지정된 블럭은 지정된 블럭 내의 페이지가 정상적인 전원 차단이 발생할 때마다 전원 차단 서명을 사용하여 기록될 수 있도록 정해질 수 있다. 다음에 메모리 부분에 전원이 적용될 때, 지정된 블럭은 적절한 전원 차단 서명이 포함되어 있는지를 결정하도록 액세스될 수 있다.
플래시 메모리 시스템 또는 더 일반적으로, 전원 관리 블럭을 사용하여 이득이 될 수있는 비휘발성 메모리 장치는 플래시 메모리 카드 및 칩세트를 포함한다. 일반적으로, 플래시 메모리 시스템은 호스트 시스템과 연계하여 사용되고, 그로 인해서 상기 호스트 시스템은 플래시 메모리 시스템에 데이터를 기록하거나 그로부터 데이터를 판독할 수 있다. 그러나, 일부 플래시 메모리 시스템은, 도 1c와 관련해서 아래에 설명될 바와 같이, 삽입된 플래시 메모리에 대한 제어기로서 실질적으로 역할을 하도록 호스트 상에서 실행되는 삽입된 플래시 메모리 및 소프트웨어를 포함한다. 도 1a를 참조하여, 예컨대 CompactFlash 메모리 카드와 같은 비휘발성 메모리 장치를 포함하는 일반적인 호스트 시스템이 설명될 것이다. 호스트 또는 컴퓨터 시스템(100)은 마이크로프로세서(108), RAM(random access memory)(112), 및 입/출력 회로(116)가 통신할 수 있게 하는 시스템 버스(104)를 일반적으로 포함한다. 호스트 시스템(100)은 실례를 위해 도시되지 않은 예컨대 디스플레이 장치 및 네트워킹 장치와 같은 다른 구성성분들을 일반적으로 포함할 수 있다는 것을 알아야 한다.
일반적으로, 호스트 시스템(100)은 정지 영상 정보, 오디오 정보, 및 비디오 영상 정보를 포함하는 정보(그러나, 그러한 것들로 제한되지는 않음)를 캡쳐링할 수 있을 수 있다. 그러한 정보는 실시간적으로 캡쳐링될 수 있으며, 무선 방식으로 호스트 시스템(100)에 전송될 수 있다. 비록 호스트 시스템(100)이 실제 임의의 시스템일 수 있을 지라도, 호스트 시스템(100)은 통상적으로 디지털 카메라, 비디오 카메라, 셀룰러 통신 장치, 및 오디오 플레이어나 비디오 플레이어와 같은 시스템이다. 그러나, 호스트 시스템(100)은 일반적으로 데이터나 정보를 저장하고 데이터나 정보를 검색하는 임의의 시스템일 수 있다.
호스트 시스템(100)은 또한 데이터를 단지 캡쳐링하거나 데이터를 단지 검색만하는 시스템일 수 있다. 즉, 호스트 시스템(100)은, 일 실시예에서, 데이터를 저장하는 전용 시스템일 수 있거나, 데이터를 판독하는 전용 시스템일 수 있다. 일 예로서, 호스트 시스템(100)은 데이터를 기록하거나 저장하기 위해서만 배치되는 메모리 기록기일 수 있다. 대안적으로, 호스트 시스템(100)은 데이터를 판독하거나 검색할 뿐 데이터를 캡쳐링하지는 않도록 통상적으로 배치되는 MP3 플레이어와 같은 장치일 수 있다.
일 실시예에서 제거가능한 비휘발성 메모리 장치인 비휘발성 메모리 장치(120)는 정보를 저장하기 위해서 버스(104)와 인터페이싱하도록 배치된다. 선택성 인터페이스 블럭(130)은 비휘발성 메모리 장치(120)로 하여금 버스(104)와 간접적으로 인터페이싱하도록 할 수 있다. 존재하는 경우에 입/출력 회로 블럭(116)은 당업자가 아는 바와 같이 버스(104) 상에서의 로딩을 감소시키는 기능을 한다. 비휘발성 메모리 장치(120)는 비휘발성 메모리(124)와 선택성 메모리 제어 시스템(128)을 포함한다. 일 실시예에서, 비휘발성 메모리 장치(120)는 단일 칩이나 다이(die) 상에 구현될 수 있다. 대안적으로, 비휘발성 메모리 장치(120)는 다중-칩 모듈 상에 구현될 수 있거나, 칩세트를 형성할 수 있으면서 비휘발성 메모리 장치(120)로서 함께 사용될 수있는 다중 이산 성분상에 구현될 수 있다. 비휘발성 메모로 장치(120)의 일 실시예가 도 3b와 관련하여 아래에서 더욱 상세히 설명될 것이다.
비휘발성 메모리(124), 예컨대, NAND 플래시 메모리나 MLC NAND 플래시 메모리와 같은 플래시 메모리가 데이터를 저장하기 위해서 배치됨으로써, 상기 데이터는 필요시 엑세스되어 판독될 수 있다. 비휘발성 메모리(124)에 저장된 데이터는 또한 적절하게 소거될 수 있지만, 비휘발성 메모리(124) 내의 일부 데이터가 소거될 수 없을 수도 있다는 것을 알아야 한다. 데이터를 저장하고, 데이터를 판독하고, 데이터를 소거하는 처리는 일반적으로 메모리 제어 시스템(128)에 의해 제어되거나, 또는 메모리 제어 시스템(128)이 존재하지 않을때는, 마이크로프로세서(108)에 의해서 실행되는 소프트웨어를 통해 제어된다. 비휘발성 메모리(124)의 동작은, 상기 비휘발성 메모리(124)의 섹션들이 본질적으로 거의 동일하게 소모되도록 야기함으로써 상기 비휘발성 메모리(124)의 수명이 실제로 극대화되도록 관리될 수 있다.
비휘발성 메모리 장치(120)는 선택성 메모리 제어 시스템(128), 즉 제어기를 포함하는 것으로서 일반적으로 설명되었다. 종종, 비휘발성 메모리 장치(120)는 비휘발성 메모리(124) 및 메모리 제어 시스템(128), 즉 제어기 기능부를 위한 별도의 칩들을 포함할 수 있다. 일 예로서, PC 카드, CompactFlash 카드, MultiMedia 카드, 및 보안 디지털 카드를 포함하는(하지만 그러한 것들로 제한되지는 않음) 비휘발성 메모리 장치가 별도의 칩 상에 구현될 수 있는 제어기를 포함할 지라도, 다른 비휘발성 메모리 장치는 별도의 칩 상에 구현된 제어기를 포함하지 않을 수 있다. 비휘발성 메모리 장치(120)가 별도의 메모리 및 제어기 칩을 포함하지 않는 실시예에서는, 메모리와 제어기 기능부는 당업자가 아는 바와 같이 단일 칩에 집적될 수 있다. 대안적으로, 메모리 제어 시스템(128)의 기능은, 위에서 논의된 바와 같이, 비휘발성 메모리 장치(120)가 메모리 제어기(128)를 포함하지 않는 실시예에서 일 예로서 마이크로프로세서(108)에 의해 제공될 수 있다.
도 1b에 관련해서, 비휘발성 메모리 장치(120)가 본 발명의 실시예에 따라 더욱 상세히 설명될 것이다. 위에서 설명된 바와 같이, 비휘발성 메모리 장치(120)는 비휘발성 메모리(124)를 포함하며, 메모리 제어 시스템(128)을 포함할 수 있다. 메모리(124) 및 제어 시스템(128), 즉 제어기는 비휘발성 메모리 장치(120)의 기본 성분일 수 있지만, 메모리(124)가 삽입형 MLC NAND 메모리와 같은 삽입형 NAND 장치일 때는, 예컨대, 비휘발성 메모리 장치(120)가 제어 시스템(128)을 포함하지 않을 수 있다. 메모리(124)는 반도체 기판 상에 형성된 메모리 셀 어레이일 수 있는데, 메모리 셀의 각 저장 엘리먼트 상에 2 이상 레벨의 전하를 저장함으로써 각 메모리 셀에 1 비트 이상의 데이터가 저당된다. 비휘발성 플래시 전기 EEPROM(erasable programmable read only memory)은 그러한 시스템을 위한 일반적인 유형의 메모리에 대한 예이다.
존재할 경우에, 제어 시스템(128)은 데이터를 저장하기 위해서 메모리 시스템을 사용하는 호스트 컴퓨터나 다른 시스템에 버스(15)를 통해서 통신한다.버스(15)는 일반적으로 도 3a의 버스(104)의 일부분이다. 제어 시스템(128)은 또한 메모리(124)의 동작을 제어하는데, 상기 메모리(124)는 호스트가 제공하는 데이터를 저장하고 호스트가 요청하는 데이터를 판독하며 메모리(124)를 동작시키는데 있어 여러 하우스키핑 기능을 수행하기 위해서 메모리 셀 어레이(11)를 포함할 수 있다. 제어 시스템(128)은 일반적으로 비휘발성 소프트웨어 메모리, 여러 논리 회로 등과 연관된 범용 마이크로프로세서를 포함한다. 하나 이상의 상태 머신이 종종 특정 루틴의 수행을 제어하기 위해서 또한 포함된다.
메모리 셀 어레이(11)는 통상적으로 어드레스 디코더(17)를 통해서 제어 시스템(128)이나 마이크로프로세서(108)에 의해 어드레싱된다. 디코더(17)는 제어 시스템(128)에 의해서 어드레싱되는 메모리 셀 그룹에 데이터를 프로그래밍하거나, 메모리 셀 그룹으로부터 데이터를 판독하거나, 메모리 셀 그룹을 소거하기 위해서 정확한 전압을 게이트 및 비트 라인 어레이(11)에 인가한다. 추가 회로(19)는 어드레싱된 셀 그룹 내에 프로그래밍되는 데이터에 의존하는 어레이의 엘리먼트에 인가되는 전압을 제어하는 프로그래밍 구동기를 포함한다. 회로(19)는 또한 어드레싱된 메모리 셀 그룹으로부터 데이터를 판독하기 위해 필요한 센스 증폭기 및 다른 회로를 포함한다. 어레이(11)에 프로그래밍될 데이터, 또는 어레이(11)로부터 최근에 판독된 데이터는 통상적으로 제어 시스템(128) 내의 버퍼 메모리(21)에 저장된다. 제어 시스템(128)은 또한 일반적으로 명령 및 상태 데이터를 일시 저장하기 이한 여러 레지스터 및 그와 유사한 것을 포함한다.
어레이(11)는 매우 많은 수의 블럭 0-N 메모리 셀로 분할된다. 플래시EEPROM 시스템에 공통적으로, 블럭은 통상적으로 가장 작은 소거 단위이다. 즉, 각각의 블럭은 함께 소거되는 최소 수의 메모리 셀을 포함한다. 각각의 블럭은 통상적으로 다수의 페이지로 분할된다. 당업자는 알게 될 바와 같이, 페이지는 가작 작은 프로그래밍 단위일 수 있다. 즉, 기본 프로그래밍 동작은 메모리 셀의 최소 한 페이지에 데이터를 기록하거나 그로부터 데이터를 판독한다. 하나 이상의 데이터 섹터가 통상적으로 각각의 페이지에 저장된다. 도 3b에 도시된 바와 같이, 하나의 섹터는 사용자 데이터 및 오버헤드 데이터를 포함한다. 오버헤드 데이터는 통상적으로 섹터의 사용자 데이터로부터 계산되어진 ECC나 다른 중복 코드를 포함한다. 제어 시스템(128)의 일부분(23)은 데이터가 어레이(11)에 프로그래밍될 때 ECC를 계산하고, 데이터가 어레이(11)로부터 판독될 때 ECC를 또한 검사한다. 대안적으로, ECC는 자신이 속하는 사용자 데이터 이외의 다른 페이지나 다른 블럭에 저장된다.
사용자 데이터의 섹터는 통상적으로 512바이트인데, 이는 자기 디스크 장치의 섹터 사이즈에 상응한다. 오버헤드 데이터, 즉 중복 데이터는 통상적으로 추가적인 바이트이다. 데이터의 한 섹터가 가장 일반적으로는 각각의 페이지에 포함되지만 두 개 이상의 섹터가 대신에 페이지를 형성할 수 있다. 임의의 수의 페이지가 일반적으로 하나의 블럭을 형성할 수 있다. 일 예로서, 하나의 블럭은 8 개의 페이지에서부터 최대 512,1024개 이상의 페이지로 형성될 수 있다. 블럭의 수는 메모리 시스템에 원하는 데이터 저장 용량을 제공하도록 선택된다. 어레이(11)는 통상적으로 수 개의 서브-어레이(미도시)로 분할되는데, 각각의 서브-어레이는 블럭들의 균형을 포함하며, 상기 블럭은 여러 메모리 동작의 실행에 있어 병행 정도를 증가시키기 위해 서로에 다소 상관없이 동작한다. 다중 서브-어레이의 사용에 대한 예가 미국 특허 제 5,890,192호에 설명되어 있는데, 상기 미국 특허는 완전히 본 명세서에서 참조된다.
일 실시예에서, MLC NAND 메모리와 같은 비휘발성 메모리 시스템, 예컨대 호스트 시스템에 삽입된다. 도 1c는 삽입된 비휘발성 메모리를 포함하는 호스트 시스템의 개략도이다. 호스트 또는 컴퓨터 시스템(150)은 일반적으로 시스템 버스(154)를 포함하는데, 상기 시스템 버스(154)는 마이크로프로세서(158), RAM(162), 및 입/출력 회로(166)가 호스트 시스템(150)의 다른 성분들(미도시) 사이에서 통신할 수 있게 한다. 비휘발성 메모리(174), 예컨대 플래시 메모리는 정보가 호스트 시스템(150) 내에 저장될 수 있게 한다. 인터페이스(180)가 비휘발성 메모리(174)와 버스(154) 사이에 제공될 수 있음으로써, 정보가 비휘발성 메모리(174)로부터 판독되거나 그곳에 기록될 수 있다.
비휘발성 메모리(174)는 상기 비휘발성 메모리(174)를 제어하기 위해 배치되는 소프트웨어나 펌웨어 중 어느 하나나 또는 그 둘 모두를 효과적으로 실행시키는 마이크로프로세서(158)에 의해서 관리될 수 있다. 즉, 마이크로프로세서(158)는 비휘발성 메모리(174)가 제어될 수 있게 하는 코드 장치(미도시), 즉 소프트웨어 코드 장치나 펌웨어 코드 장치를 작동시킬 수 있다. 아래에서 설명될 바와 같이, 마이크로프로세서(158) 내의 CPU와 패킷화되는 플래시 메모리, 별도의 플래시 ROM, 또는 내장형 비휘발성 메모리(174)일 수 있는 그러한 코드 장치는 비휘발성메모리(174)의 물리 블럭이 어드레싱될 수 있게 하며, 정보가 물리 블럭에 저장되고, 물리 블럭으로부터 판독되며, 물리 블럭으로부터 소거될 수 있게 할 수 있다.
일반적으로, NAND 플래시 메모리 칩과 같은 비휘발성 메모리 부분은 블럭으로 분할된다. 도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리 부분을 설명하는 다이어그램이다. 메모리 부분(200)은 다수의 블럭(204)을 포함한다. 메모리 부분(200)내의 다수의 블럭(204)은 메모리 부분(200)의 전체 크기에 따라 광범위하게 변화할 수있다. 예를 들면, 메모리부분(200)은 512개의 블럭, 1024개의 블럭, 2048개의 블럭, 또는 4096개의 블럭을 포함할 수 있다. 메모리 부분(200)은 일반적으로 N개의 블럭(204)을 포함할 수 있으며, 상기 N은 실질적으로 임의의 적절한 개수의 블럭이 될 수 있음이 통지되어야만 한다.
메모리 부분(200)내의 특정수의 블럭(204)은 지정된 블럭(204f-m)으로 간주될 수 있다. 지정된 블럭(204f-m)은 메모리 부분(200)내에서 가장 최근의 8개 블럭(204)과 같은 가장 최근에 사용가능한 소수개의 블럭(204)이 될 수 있지만, 지정된 블럭(204f-m)은 일반적으로 메모리 부분(200)내의 임의의 블럭(204)이 될 수 있다. 지정된 블럭(204f-m)은 일반적으로 전원 관리 블럭으로 사용하거나 카운트 블럭을 소거하기 위해 지정될 수 있으며, 계류중인 미국 특허 출원 10/281,804에서 설명되고 여기에서 참조로써 통합된다. 종종, 지정된 블럭(204f-m)은 현재 전력 관린 블럭이 충분하면, 지정된 블럭(204f-m)으로부터 할당된 또다른 전원 관리 블럭에 의해 교체되거나 대체될 수 있는 현재의 전원 관리 블럭을 포함할 수 있다.
예를 들면, 전원이 먼저 초기화 프로세스의 일부분으로서 인가되는 경우와같이, 전원이 메모리 부분(200)에 인가되면, 초기화 서명, 또는 초기화 프로세스가 성공적임을 나타내도록 배치되는 비트는 전원 관리 블럭과 관련된 페이지에 저장될 수 있다. 도 3a와 관련하여, 초기화 서명을 포함하는 전원 관리 블럭의 일 실시예는 본 발명의 일 실시예에 따라 설명될 수 있다. 전원 관리 블럭(3040은 일반적으로 임의의 갯수의 페이지(308)를 포함한다. 통상적으로, 전원 관리 블럭(304)내에 포함된 페이지(308)의 갯수는 적어도 부분적으로는 전원 관리 블럭(304)을 포함하는 전체적인 비휘발성 메모리 내의 블럭의 표준 크기에 따라 결정될 수 있다.
메모리 부분이 성공적으로 초기화되면, 초기화 또는 "개시" 서명(312)이 전원 관리 블럭(304)의 제 1 페이지(308a)에 기록될 수 있다. 상기와 같이, 초기화 서명(312)이 제 1 페이지(308)에서 발견되거나, 더 일반적으로 전원 관리 블럭(304)에서 사용가능한 가장 최근의 서명일 때, 초기화 프로세스는 성공적인 것으로 표시한다. 일 실시예에서, 초기화 서명(312)은 예를 들면 평균 소거 카운트와 같은 다른 정보에 따라 페이지(308a)에 기록될 수 있다.
전원 관리 블럭(304)을 포함하는 메모리 부분이 전원 공급되면, 컨텐츠가 기록된 최근 페이지(308)는 일반적으로 액세스된다. 컨텐츠가 기록된 가장 최근 페이지(308)는 만약 이전 초기화 과정이 성공적이지만 상기 초기화 과정이 발생된 이후의 차단 프로세스는 비정상적인 경우, 초기화 서명(312)을 포함한다. 차단 또는 "폐쇄" 서명(324)은 일반적으로 차단 프로세스가 성공적으로 종료되었음을 나타내도록, 예를 들어 패턴으로 배치되는 비트를 포함할 수 있다. 일반적으로, 컨텐츠가 기록된 가장 최근 페이지(308b)내의 차단 서명(324)의 존재는 메모리 부분의 가장 최근의 전원 차단이 정상적인 환경에서 발생되었으며, 데이터 복구 프로세스를 수행하는 것이 필수적인 배터리 장애로 인한 전력의 돌발적인 손실과 같은 비정상적인 환경에서는 발생되지 않았음을 나타낸다.
차단 서명이 페이지(308b)에 기록되면, 차단 서명(324)은 다른 정보와 함께 페이지(308b)에 기록될 수 있다. 차단 서명(324)과 함께 페이지(308b)에 기록될 수 있는 다른 정보는 평균 소거 카운트뿐만 아니라 가장 자주 소거된 블럭 및 가장 드물게 소거된 블럭과 같은 여분의 블럭에 적합한 소거 카운트를 포함할 수 있지만 이에 제한되지는 않는다.
도 4를 참조로 하여, 관련된 전력 관리 블럭을 가지는 비휘발성 메모리 부분을 초기에 사용하는 방법과 관련된 단계는 본 발명의 일 실시예에 따라 설명될 것이다. 예를 들면, 메모리 부분이 전원 공급되는 제 1 시간과 같은 초기에 사용하는 비휘발성 메모리 부분의 프로세스(400)는 메모리 부분이 초기화되는 단계(404)를 시작한다. 메모리 부분을 초기화시키는 단계는 메모리 부분에 전원을 제공하는 단계와 메모리 부분이 사용되도록 인에이블하기 위해 요구되는 데이터 구조를 생성하는 단계를 포함할 수 있지만, 이에 제한되지는 않는다.
메모리 부분이 초기화되면, 초기화 서명은 단계(408)에서 전원 관리 블럭에 기록된다. 전술된 바와 같이, 초기화 서명은 평균 소거 카운트 및 다른 정보와 같은 전원 관리 블럭의 동일한 페이지에 기록될 수 있다. 초기화 서명이 기록된 후에, 메모리 부분은 단계(412)에서 사용될 수 있다. 메모리 부분을 사용하는 것은 일반적으로 데이터를 메모리 부분에 기록하거나 저장하는 단계뿐만 아니라 상기 메모리 부분으로부터 저장된 데이터를 판독하는 단계를 포함할 수 있다.
동일한 시간에, 메모리부분의 사용자는 예를 들면 사용자가 메모리 부분과 인터페이싱되는 호스트 장치를 전원 차단하는 것을 원하는 경우와 같이, 메모리 부분을 전원 차단하기 위한 명령 또는 요청을 발행할 수 있다. 상기와 같이, 메모리 부분이 전원 차단되었는지에 관한 결정이 단계(416)에서 실행된다. 만약, 메모리 부분이 전원 차단되지 않았다고 결정되면, 단계(420) 차단 서명이 전원 관리 블럭에 기록된다. 일 실시예에서, 차단 서명은 다른 정보가 차단 서명으로서 동일한 페이지에 저장되는 시간과 실질적으로 동시에 기록된다. 상기 정보는 전술된 바와 같이, 평균 소거 카운트, 덜 빈번하게 소거되는 블럭 테이블과 관련된 식별자, 및 가장 자주 소거되는 블럭 테이블과 관련된 식별자를 포함할 수 있지만, 이에 제한되지는 않는다. 차단 서명이 전원 관리 블럭에 기록된 후에 메모리 부분은 단계(424)에서 전원 차단되고 메모리 부분을 초기에 사용하는 프로세스는 종료된다.
일반적으로, 메모리 부분이 초기화되었는지가 공지되지 않는 경우, 메모리 부분의 전원 관리 블럭은 초기화 서명을 위해 검사될 수 있다. 즉, 제 1 시간을 위해 메모리 부분에 전원이 제공되는 것이 공지될 때 발생할 수 있는 것과 같이 오히려 자동적으로 메모리 부분을 초기화시키는 것은 먼저 메모리 부분이 이전에 초기화되었는지가 결정될 수 있으며, 결과적으로 전원 공급되거나 전원 차단된다. 도 5는 본발명의 일 실시예에 따라 이전에 전원 차단된 메모리 부분을 사용하는 방법에 관련된 단계를 설명하는 프로세스 흐름도이다. 전원관리 블럭을 포함하는 메모리 부분을 사용하는 프로세스(500)는 전원이 메모리 요소에 인가되는 단계(504)에서 시작한다. 전원이 메모리 부분에 인가되면, 단계(508)에서는 전원 메모리 블럭에서 초기화 서명이 존재하는지가 결정된다. 특히, 메모리 부분의 초기화가 이전에 종료되었는지가 결정된다.
적절한 초기화 서명이 전원 관리 블럭 내에 존재하는지가 결정되면, 메모리 부분의 초기화 또는 전원 공급이 이전에 성공적으로 종료되었는지가 표시된다. 따라서, 단계(512)에서, 전원 관리 블럭 내에 적절한 차단 서명이 존재하는지가 결정된다. 적절한 차단 서명이 전원 관리 블럭 내에 존재하면, 차단 서명은 전원관리 블럭내의 가정 최근의 서명임이 표시된다. 일 실시예에서, 적절한 차단 서명이 존재하는 지의 결정은 초기화 서명이 전원관리 블럭 내에서 가장 최근의 서명인지 또는 초기화 서명이 전원 관리 블럭 내에서 가장 최근에 기록된 페이지인지를 결정하는 것을 포함한다.
만약 단계(512)에서 적절한 차단 서명이 전원 관리 블럭 내에 존재하는지 결정되면, 메모리 부분을 가지는 데이터는 실질적으로 동기화되면, 따라서 데이터 복구 프로세스는 요구되지 않는다. 따라서, 메모리 부분은 단계(532)에서 사용될 수 있다. 메모리 부분을 사용하는 단계는 초기화 또는 개시 서명을 전원관리 블럭에 기록하는 단계를 포함할 수 있음이 통지되어야만 한다. 메모리 부분을 사용하는 것은 또한 차단 또는 전원 차단 명령이 수신될 때 차단 서명을 전원 관리 블럭에 기록하는 단계를 포함한다. 단계(532)에서 메모리 부분이 사용되면, 메모리 부분을 사용하는 프로세스는 종료된다.
선택적으로, 만약 단계(512)에서, 차단 서명이 전원 관리 블럭 내에서 가장 최근 서명이 아니라고 결정되면, 메모리 부분의 비정상적인 차단이 이전에 발생되었음이 표시된다. 즉, 초기화 서명이 전원 관리블럭 내의 가장 최근 서명이고 초기화 서명에 해당하는 어떤 차단 서명도 존재하지 않으면, 메모리 부분의 이전 차단 또는 메모리 부분으로부터 전원의 제거가 정상적인 환경에서 발생하지 않았음을 나타낸다. 예를 들면, 메모리 부분에 대한 전원은 배터리 장애로 인해 손실되었을 수 있다. 따라서, 프로세스 흐름은 단계(512)에서 단계(516)로 이동하며 블럭 동기화 프로세스가 수행된다. 통상적으로, 블럭 동기화 프로세스는 예를 들면 하나 이상의 물리 블럭이 논리 블럭에 할당될 수 있는 것 처럼 메모리 부분에 관련된 데이터가 동기화되지 않을 수 있기 때문에 수행될 수 있다. 더욱이, 호스트 시스템은 메모리 부분을 사용하는 전체 시스템의 이전 차단이 원활하지 못함이 통지될 수 있고 사용자가 sandisk 특성과 같은 복구 특성을 구동하도록 촉구할 수 있다.
일 실시예에서, 데이터 복구 프로세스가 수행된 후에, 단계(518)에서, 블럭과 관련된 실질적으로 모든 소거 카운트는 소거 카운트 블럭으로부터 획득된 평균 소거 카운트를 사용하여 동기화될 수 있거나 업데이트될 수 있다. 소거 카운트 블럭의 일 실시예는 계류중인 미국 특허 출원 10/281,626에 개시되며, 여기에서 참조로서 통합된다.
소거 카운트가 동기화된 후에, 동작 시스템 또는 호스트는 단계(524)에서 부적당한 차단 또는 전원 장애가 이전 전원 차단에서 발생되었음이 통지된다. 즉, 메모리 부분과 관련된 호스트의 파일 시스템은 적절한 차단으로 통지될 수 있다.호스트는 통상적으로 데이터 보전(integrity) 검사 및 "sandisk" 프로세스와 같은 복구 프로세스가 요청될 수 있는지를 결정할 것이다. 상기와 같은 프로세서가 요구되었는지의 질문은 사용자에게 촉진될 수 있다. 그후에 사용자에게 복구 프로세스를 시작할 것인지 또는 통지를 무시할 것이지가 맡겨질 수 있다.
단계(508)로 되돌아가서, 만약 전원관리 블럭 내에 어떤 초기화 서명도 존재하지 않음이 결정되면, 메모리 부분은 이전에 성공적으로 초기화되었던 것으로 표시된다. 따라서, 단계(528)에서, 메모리부분은 초기화된다. 메모리 부분을 초기화시키는 단계는 메모리 부분이 적절히 초기화되면 초기호 서명을 전원관리 블럭에 기록하는 단계를 포함할 수 있다. 메모리 부분이 초기화되면, 메모리 부분은 단계(532)에서 사용될 수 있다.
일반적으로, 전원장애가 전체 시스템내에서 발생하면, 파일과 관련된 데이터 보전은 절충될 수 있다. 특히, 비휘발성 메모리의 데이터 영역 또는 호스트로부터의 메모리 부분에 효율적으로 기록된 파일의 데이터 보전은 상기기록 프로세스가 전원 장애로 인해 너무 일찍 중단되는 경우 절충될 수 있다. 사용자로부터 전원 차단이 요청되면, 파일을 기록하는 단계는 일반적으로 실제 전원 차단이 발생하기 이전에 종료된다.
파일이 비휘발성 메모리에 기록되면, 비휘발성 메모리의 상이한 영역은 일반적으로 시퀀스에 기초하여 기록된다. 예를 들면, 호스트 시스템 영역 및 비휘발성 메모리의 데이터 영역은 특정 순서로 기록될 수 있다. 도 6은 본발명의 일 실시예에 따라 호스트 시스템 영역 및 비휘발성 메모리의 데이터 영역을 나타내는 다이어그램이다. 설명된 실시예에서, 비휘발성 메모리(600)는 NAND 메모리이지만, 비휘발성 메모리(600)는 일반적으로 임의의 적합한 메모리가 될 수 있음이 인식되어야 한다.
메모리의 호스트 시스템 영역(600)은 일반적으로 마스터 부트 레코드(master boot record)(602), 숨겨진 영역(606), 구획 부트 레코드(610), 제 1 파일 할당 테이블(614), 제 2 파일 할당 테이블(618), 및 루트 디렉토리(622)를 포함한다. 마스터 부트 레코드(602)는 메모리(600)와 관련된 구획이 어떤 오퍼레이팅 시스템과 호환가능한지를 결정하도록 인에이블한다. 예를 들어, 마스터 부트 레코드(602)는 특정 구획이 리눅스 오퍼레이팅 시스템과 호환가능한 반면, 또다른 구획은 윈도우 98 오퍼레이팅 시스템과 호환가능한 것을 설명할 수 있다. 당업자에 의해 인식되는 바와 같이, 구획 부트 레코드(610)는 메모리(600)와 인터페이싱하는 호스트 시스템이 메모리(600)가 호환가능한 오퍼레이팅 시스템을 식별하도록 인에이블한다.
메모리(600)의 데이터 영역(626)은 루트 디렉토리(622)와 관련된 서브디렉토리(비도시)를 포함하도록 배치된다. 추가로, 데이터 영역(626)은 메모리(600)와 관련된 파일의 컨텐츠를 포함하도록 배치된다. 도 7을 참조로 하여 하기에서 설명되는 바와 같이, 파일이 메모리(600)에 기록될 때, 예를 들면, 루트 디렉토리(622)및 루트 디렉토리(622)와 관련된 서브디렉토리와 같은 디렉토리는 파일과 관련된 데이터가 데이터 영역(626)에 기록된 이후에 파일명을 사용하여 기록될 수 있다. 파일 할당 테이블(614, 618)이 기록될 수 있으며, 파일명이 기록된 디렉토리는 컨텐츠의 위치, 크기, 및 파일 생성 시간에 의해 업데이트될 수 있다.
도 7을 참조로 하여, 호스트 시스템에 관련된 파일을 비휘발성 메모리에 기록하는 방법에 관련된 일반적인 단계의 예는 본 발명의 일 실시예에 따라 설명될 것이다. 파일을 기록하는 프로세스(760)는 단계(764)에서 시작되어 데이터 파일명이 생성되며, 생성 시간 및 특성은 예를 들어 NAND 메모리와 같은 비휘발성 메모리와 관련된 디렉토리에 기록된다. 단계(768)에서, 파일명이 디렉토리에 기록되면, 데이터 파일의 컨텐츠는 메모리와 관련된 데이터 영역에 기록된다. 설명된 실시예에서, 데이터 파일의 컨텐츠가 데이터 영역에 기록된 이후에, 단계(772)에서 제 1 FAT는 파일에 해당하는 데이터 영역내의 데이터의 위치가 식별되도록 인에이블하기 위해 기록될 수 있다. 단계(776)에서, 제 2 FAT는 효율적으로 제 1 FAT를 복사하도록 기록될 수 있다. 두가지 FAT 모두가 기록된 후에, 단계(780)에서 파일에 해당하는 디렉토리 엔트리는 데이터 영역 내에서 파일의 컨텐츠가 시작하는 장소, 파일의 길이 및 파일이 효율적으로 생성된 시간을 식별하는 파일 시간을 식별하는 시작 클러스터(cluster)를 사용하여 업데이트될 수 있다. 파일 생성 또는 변경은 단계(780)가 수행될 때까지 종료되지 않기 때문에, 최종 클러스터 또는 데이터 파일 컨텐츠의 최종 페이지는 일반적으로 단계(772 및 776)이후에 기록된다. 당업자에게 인식되는 바와 같이, 클러스터는 임의의 갯수의 페이지를 포함할 수 있고 일반적으로 구획 부트 레코드에 의해 한정될 수 있다. 파일을 기록하는 프로세스는 디렉토리 엔트리가 업데이트되면 종료된다.
전원 관리 블럭의 사용을 통해, 메모리로부터의 전원의 이전 제거가 전원 장애로 인한 것인지 또는 비정상적이기 때문인지 확인될 수 있다. 메모리의 전원 차단이 비정상적인것이라고 결정되면, 파일 기록 프로세스는 좀 더 일찍 중단되었을 수 있다. 상기와 같이, 호스트에 시스템의 데이터 보전을 유지하기 위한 데이터 복구 프로세스를 수행하도록 통지하는 것이 바람직하다.
도 7을 계속 참조로 하여, 만약 전원이 단계(764)이전에 또는 단계(780)이후에 차단되면, 파일은 기록되지 않거나 기록이 종료되며, 파일은 변질되지 않는다. 전원이 기록 프로세스가 시작되기 이전에 손실되기 때문에 기록되거나 기록이 종료된 파일은 사용자가 사용할 수 없을 것이다. 단계(768)를 제외하고, 단계(764), 단계(772), 단계(776), 또는 단계(780)중 하나에서 기록 동작이 시작되었지만 종료되지는 않았다면 단계는 효율적으로 수행되지 않는다. 따라서, 기록될 페이지는 필수적으로 폐기되고 오래된(old) 페이지는 복구를 위해 사용된다. 오래된 페이지는 본 발명에서 사용가능하다. 변질된 페이지를 실질적으로 교체하는 오래된 페이지는 호스트에 대해 투명하다. 컨텐츠의 유효성은 ECC 검사에 의해 보호된다. 페이지가 변질되면, 계류중인 미국 임시 특허 출원 60/421,725에 개시된 것과 같이 이전의 "양호하거나" 변질되지 않은 페이지는 호스트에게 복귀될 수 있으며, 본 명세서에서 참조로서 통합된다. 업데이트된 페이지 정보는 실질적으로 오래된 페이지를 너무 많이 기록하지 않고 항상 소거된 페이지에 기록된다. 그러므로 오래된 페이지가 소거되지 않으면, 데이터 컨텐츠는 너무 많이 기록되는 도중에 새로운 정보에 의해 변질되지 않을 것이다. 더욱이, 계류중인 미국 특허 출원 10/281,631에 개시된바와 같이 FAT 및 디렉토리를 포함하는 파일 시스템의 주용 영역은 종종 다수의 물리 블럭으로 분할된다. 플래시 메모리가 포맷된 이후에, FAT 및 루트 디렉토리의 각 페이지의 유효 복사본이 존재한다. 백업(backup) 페이지는 새로운 페이지가 성공적으로 기록되지 않는 경우 사용가능하며, 따라서 미디어가 비-인식가능한 FAT 및 디렉토리로서 복구가능하도록 인에이블하는 것은 미디어가 비-인식가능하도록 할 수 있다.
만약 전원 장애가 단계(764)에서 발생하여 기록 동작이 실패하도록 한다면, 일반적으로 디렉토리의 이전 복사본이 사용된다. 만약 기록 동작이 성공적으로 종료하면, 시스템은 파일명과 함께 파일을 포함할 수있지만 어떤 컨텐츠도 포함하지 않으며, 즉, 거의 0에 가까운 파일 크기를 갖는다. 상기와 같이, 사용자는 일반적으로 파일을 "재생성"해서 파일이 컨텐츠와 함께 저장된다. 전력의 손실이 단계(768)의 도중에, 또는 단계(768)이후에, 그러나 단계(772)이전의 어딘가 에서 발생하면, 기록된 데이터는 임의의 파일과 관련되지 않으며, 따라서 사용자에게 사용가능하지 않다. 사용자는 일반적으로 거의 0에 가까운 크기를 가지는 파일을 포함한다. 만약 전력의 손실이 FAT1 또는 FAT2가 기록된 이후에 발생하면, 호스트는 데이터를 설정할 수있으며, 사용자가 복구 프로세스동안 임의의 정보를 이용할 수 있도록 할 수 있다. 단계(768)이후에 전원 장애시 기록된 정보는 정상적인 복구 프로세스를 사용하여 사용할 수 없기 때문에 전원장애는 이해되어야만 한다. 디렉토리 엔트리는 단계(780)까지 데이터에 파일을 결합시키지 않기 때문에 사용자는 단계(776)이후에도 여전히 대략 0에 가까운 파일 크기를 "인식"할 것이다.
본 발명은 사용자가 전원 장애가 발생하여 복구 프로세스가 일반적으로 요구되는 호스트를 통지하도록 한다. 비정상적인 전원 차단 이후에 메모리가 전원 공급되면, 블럭 복사 또는 병합 프로세스는 또한 비정상적인 전원 차단 시에 종료되어야만 한다. 예를 들면, 다수의 물리 블럭이 단일 논리 블럭과 결합되는 경우, 논리 블럭이 실질적으로 모든 현재 데이터 또는 논리 블럭과 관련된 정보를 포함하는 단일 물리블럭과 실질적으로 관련되도록 물리 블럭을 변형시키는 것이 바람직할 수 있다.
공통 논리 블럭과 관련된 물리 블럭을 변형시키는 단계는 일반적으로 어떤 물리 블럭이 더 최근에 논리 블럭과 관련되었는지를 결정하는 단계를 포함한다. 계류중인 미국 특허 출원 10/281,762에 개시된 업데이트 지수는 다수의 물리 블럭 중 어느것이 가장 최근에 논리블럭과 관련되는지를 결정하기 위해 사용될 수 있으며, 따라서 논리 블럭과 관련된 가장 최근의 컨텐츠를 포함하도록 효율적으로 업데이트되어야만 한다. 종종, 논리 블럭이 하나 이상의 관련된 물리 블럭을 가지며, 상기 논리블럭과 관련된 하나의 논리 블럭을 식별하는 것이 필수적으로 요구되는 경우, 업데이트 지수는 두개의 물리 블럭으로부터의 업데이트 지수의 비교가 두개의 물리 블럭 중 어느것이 물리 블럭이 변형된 이후, 예를 들면 병합 프로세스가 발생한 이후에 논리 블럭과 결합되어야만 하는 지와 두개의 물리 블럭 중 어느것이 논리블럭으로부터 결합되지 않아야만 하는지를 식별하도록 업데이트 지수가 정해지기 때문에 업데이트 지수는 물리 블럭으로부터 획득될 수 있다.
업데이트 지수는 물리 블럭과 관련된 적어도 하나의 오버헤드 또는 잉여 데이터에 저장될 수 있으며, 복사 또는 병합에 관련된 두개의 논리적인 블럭중 어느것이 오래된 물리 블럭인지와 두개의 물리블럭중 어느것이 새로운 물리 블럭인지,또는 컨텐츠가 복사되는 물리 블럭을 나타내도록 정해질 수 있다. 예를 들어, 새로운 물리 블럭의 업데이트 지수는 업데이트 지수의 값이 오래된 무리블럭의 업데이트 지수보다 높도록 세팅될 수 있다. 따라서, 물리 블럭의 업데이트 지수가 어떤 물리 블럭이 새로운 불리 블럭인지를 결정하도록 검사될 때, 더 높은 업데이트 지수를 가지는 물리 블럭이 새로운 불리 블럭으로 결정될 수 있다.
전원 관리 블럭을 사용하는 경우와 같이 전원 장애가 이전에 비휘발성 메모리를 포함하는 메모리 시스템내에서 발생되었는지가 결정되면, 하나 이상의 관련된 물리 블럭을 가지는 임의의 논리 블럭은 논리 블럭이 예를 들면 업데이트 지수를 사용하여 변형될 수 있도록 식별될 수 있다. 일 실시예에서, 실질적으로 단 하나의 논리 블럭은 하나이상의 관련된 물리 블럭을 가질 수 있으며 전원 장애가 발생할 때 기록되거나 업데이트되는 프로세스 내에 존재할 수 있다. 도 8은 본 발명의 일 실시예에 따라 단일 논리 블럭과 결합되는 물리 블럭을 식별하고 처리하는 방법과 관련된 단계를 설명하는 프로세스 흐름도이다. 프로세스(900)는 계획된 전원 차단 또는 예기치 못한 전원 장애로 인해 메모리 부분에서의 전원이 제거된 이후의 임의의 시간에 전원이 제공되는 단계(904)에서 시작한다. 전원이 메모리 부분에 제공된 이후에, 메모리 부분의 전원관리 블럭내의 페이지는 전원장애가 발생했는지를 결정하도록 판독될 수 있다. 전술된 바와 같이, 차단 서명이 효율적으로 전원 관리 블럭 내에 가장 최근의 서명이 되면, 그후에 메모리 부분의 이전 차단이 계획된 전원 차단이라고 표시된다. 그렇지 않으면, 일반적으로 메모리 부분의 이전 차단은 전원 장에 때문인 것으로 표시된다.
단계(912)에서 전원 장애가 발생했는지에 관련하여 결정이 실행된다. 만약 전원 장애가 발생하지 않은 것으로 결정되면, 어떤 물리 블럭도 단일 논리 블럭으로 변형되지 않을 수 있음이 표시된다. 상기와 같이, 물리 블럭을 식별하여 변형시키는 프로세스는 종료된다. 선택적으로 단계(912)에서 전원 장애 또는 비정상적인 차단이 발생한 것으로 결정되면, 물리 블럭은 변형될 수 있다. 따라서, 단계(912)로부터 프로세스 흐름은 단계(916)로 이동해서 메모리 부분과 관련된 물리 블럭의 오버헤드 영역이 판독된다. 오버헤드 영역을 판독하는 단계는 일반적으로 오버헤드 영역에 저장된 업데이트 지수를 판독하는 단계뿐만 아니라 각각의 물리 블럭이 결합되는 논리 블럭을 포함하는 정보를 판독하는 단계를 포함할 수 있다.
메모리 부분의 물리 블럭의 오버헤드 영역이 판독되면, 단계(920)에서 임의의 논리 블럭이 하나 이상 관련된 물리 블럭을 가지는지가 결정된다. 만약 하나이상의 관련된 물리 블럭을 가지는 논리 블럭이 존재하는 것으로 결정되면, 프로세스 흐름은 단계(924)로 이동하여 물리 블럭의 업데이트 지수가 비교되도록 공통 논리 블럭과 관련된 물리 블럭의 오버헤드 영역으로부터 획득된다. 하나 이상의 관련된 물리 블럭을 가지는 다수의 논리 블럭이 존재할 때, 하나의 논리 블럭과 결합된 물리 블럭에 대한 업데이트 지수는 모두 획득될 수 있음이 인식되어야만 한다. 다시말해서, 실질적으로 하나 이상의 관련된 물리 블럭을 가지는 모든 논리 블럭은 실질적으로 상기 논리 블럭과 결합된 모든 물리 블럭의 업데이트 지수를 획득함으로써 효율적으로 처리될 수 있다.
업데이트 지수가 물리 블럭의 오버헤드 영역으로부터 획득된 후에, 단계(928)에서 물리 블럭은 각각의 논리 블럭이 하나의 관련된 물리 블럭을 가지도록 변형된다. 물리 블럭은 일반적으로 공통 논리 블럭과 관련된 다수의 물리 블럭의 업데이트 지수가 어떤 물리 블럭이 공통 논리 블럭과 가장 최근에 결합되었는지를 식별하도록 사용된다. 물리 블럭을 식별하는 단계는 또한 가장 최근에 공통 논리 블럭과 결합된 물리 블럭에 공통 논리 블럭과 관련된 모든 현재 정보 또는 데이터를 실질적으로 제공하는 단계를 포함한다.
물리 블럭을 변형하면, 필요한 경우 다른 데이터 복구는 단계(932)에서 수행될 수 있다. 다른 데이터 복구는 예를 들면 중단된 파일 복사 프로세스의 결과로 손실되는 복구 클러스터를 포함할 수 있다. 데이터 복구가 수행되면, 물리 블럭을 식별하여 변형시키는 프로세스는 종료된다.
단계(920)로 되돌아가서, 만약 하나 이상의 관련된 물리 블럭을 포함하는 논리 블럭이 존재하지 않음이 결정되면, 어떤 물리 블럭도 변형되지 않는 것으로 표시된다. 상기와 같이 프로세스 흐름은 단계(936)로 이동하여 다른 데이터 복구가 필요에 따라 수행될 수 있다. 임의의 다른 요구되는 데이터 복구가 수행되면, 물리 블럭을 식별하여 변형시키는 프로세스는 종료된다.
일반적으로, 전원 관리 블럭을 실행하고 유지하며, 사용하는 것과 관련된 기능은 예를 들면 프로그램 코드 장치 또는 펌웨어와 같은 소프트웨어 내에서 비휘발성 메모리 또는 비휘발성 메모리 부분을 포함하는 호스트 시스템에 제공된다. 전원 관리 블럭이 실행되고, 유지되고, 사용되도록 인에이블하기 위한 호스트 시스템에 제공되는 소프트웨어 또는 펌웨어와 관련된 적합한 시스템 구조의 실시예는 도 9에 도시된다. 시스템 구조(700)는 일반적으로 애플리케이션 인터페이스 모듈(704), 시스템 관리 모듈(708), 데이터 관리자 모듈(712), 데이터 보전 관리자(716), 및 장치 관리자 및 인터페이스 모듈(720)을 포함하지만 이에 제한되지는 않는 다양한 모듈을 포함한다. 일반적으로, 시스템 구조(700)는 예를 들면 도 1a의 프로세서와 같은 프로세서에 의해 액세스 될 수 있는 소프트웨어 코드 장치 또는 펌웨어를 사용하여 실행될 수 있다.
일반적으로, 애플리케이션 인터페이스 모듈(704)은 호스트, 오퍼레이팅 시스템 또는 사용자와 직접 통신하도록 정해질 수 있다. 애플리케이션 인터페이스 모듈(704)은 또한 시스템 관리자 모듈(708) 및 데이터 관리자 모듈(712)과 통신한다. 사용자가 플래시 메모리를 판독, 기록 또는 포맷하는 것을 원하는 경우 오퍼레이팅 시스템에 요청을 전송하여 상기 요청은 애플리케이션 인터페이스로 넘어간다. 애플리케이션 인터페이스는 상기 요청에 따라 시스템 관리자 모듈(708) 또는 데이터 관리자 모듈(712)에 상기 요청을 지시한다.
시스템 관리자 모듈(708)은 시스템 초기화 서브모듈(724), 소거 카운트 블럭 관리자 서브모듈(726), 및 전원 관리 블럭 서브모듈(730)을 포함한다. 시스템 초기화 모듈(724)은 일반적으로 초기화 요청이 처리되도록 인에이블하도록 정해지며, 통상적으로 소거 카운트 블럭 관리 서브모듈(726)과 통신한다. 소거 카운트 블럭 관리 모듈(726)은 블럭의 소거 카운트가 저장되도록 하는 기능성과 평균 소거 카운트가 계산될 뿐만 아니라 개별 소거 카운트를 사용하여 업데이트되도록 하는 기능성을 포함한다. 소거 카운트의 사용은 계류중인 미국 특허 출원 10/281,739에 개시되며, 여기에서 참조로서 통합된다. 시스템 초기화 모듈(724)은 또한 하나-대-다수의 논리-대-물리 블럭 할당을 변형하도록 정해지며, 따라서 업데이트 지수를 사용할 수 있다. 전원 관리 블럭 서브모듈(730)은 전원관리가 실행되고, 유지되며 사용되도록 인에이블하도록 정해질 수 있다. 예를 들어, 전원 관리 블럭 서브모듈(730)은 전원 관리 블럭을 할당하여 전원 관리 블럭에 저장될 수 있는 서명 및 다른 정보를 기록하는 것을 감시하도록 정해질 수 있다.
애플리케이션 인터페이스 모듈(704)과 통신하는 것에 부가하여, 시스템 관리자 모듈(708)은 데이터 관리자 모듈(712) 뿐만 아니라 장치 관리자 및 인터페이스 모듈(720)과 통신한다. 시스템 관리자 모듈(708) 및 애플리케이션 인터페이스 모듈(704) 모두와 통신하는 데이터 관리자 모듈(712)은 논리 섹터를 물리 섹터로 효율적으로 변환하는 섹터 맵핑을 제공하기 위한 기능성을 포함할 수 있다. 즉, 데이터 관리자 모듈(712)은 논리 블럭을 물리 블럭으로 맵핑하도록 배치된다. 데이터 관리자 모듈(712)은 또한 오퍼레이팅 시스템 및 파일 시스템 인터페이스층과 관련된 기능성을 포함할 수 있으며, 계류중인 미국 특허 출원 10/281,855에서 개시된 바와 같이 블럭 내의 그룹이 관리되도록 인에이블하며 본 명세서에서 참조로서 통합된다.
장치 관리자 및 인터페이스 모듈(720)은 시스템 관리자 모듈(708), 데이터 관리자(712), 및 데이터 보전 관리자(716)오 통신하며, 일반적으로 플래시 메모리 인터페이스를 포함하며, 예를 들면 I/O 인터페이스와 같은 하드웨어 개념과 관련된기능성을 포함한다. 데이터 보전 관리자 모듈(716)은 다른 기능 중에서 ECC 처리를 제공한다.
본 발명의 단지 소수의 실시예가 설명되었지만 본 발명은 본 발명의 사상 또는 근본적인 특성을 벗어나지 않으면서 다른 특정한 형태로 구현될 수 있다. 예를 들면, 전원 관리 블럭은 일반적으로 MLC NAND 메모리와 같은 NAND 메모리와 관련하여 설명될 수 있다. 그러나, 일반적으로 전원 관리 블럭은 실질적으로 임의의 적합한 메모리 또는 메모리 시스템과 관련하여 실행될 수 있다.
초기화 서명 및 차단 서명에 포함된 비트 수는 광범위하게 변경할 수 있다. 일 실시예에서, 서명에 포함된 비트 수는 특정 시스템의 요청에 따를 수 있다. 예를 들면, 서명에 포함된 비트 수는 전원 관리 블럭의 페이지 내에 포함된 비트 수보다 적거나 많을 수 있다.
본 발명의 다양한 방법과 관련된 단계는 광범위하게 변경될 수 있다. 상기 단계는 본발명의 사상 또는 근본적인 특성을 벗어나지 않으면서 부가되고, 삭제되고, 재정리되며 변경될 수 있다. 따라서, 본 발명의 개시된 실시예는 상술한 설명에 의하여 제한 받는 것이 아니라 첨부된 청구범위에 의하여 제한 받으며, 본 발명의 범위를 벗어나지 않으면서 본 발명에 대한 여러 변경이 가능하다.
본 발명의 시스템 및 방법은 메모리 전원이 켜진 시스템이 이전에 정상적으로 또는 비정상적으로 전원이 꺼졌는지의 여부에 관하여 결정하는 것을 효율적으로 인에이블할 수 있다.

Claims (46)

  1. 적어도 하나의 지정된 메모리 영역을 가지는 비휘발성 메모리를 포함하는 메모리 시스템을 사용하기 위한 방법으로서,
    상기 메모리 시스템에 전원을 제공하는 단계;
    상기 비휘발성 메모리를 초기화시키는 단계; 및
    상기 적어도 하나의 지정된 메모리 영역에 상기 메모리 시스템이 성공적으로 초기화되었음을 나타내도록 배치되는 제 1 서명을 기록하는 단계를 포함하는 메모리 시스템 사용 방법.
  2. 제 1 항에 있어서,
    상기 메모리 시스템에서 전원 차단 프로세스를 실행하는 단계; 및
    상기 적어도 하나의 지정된 메모리 영역에 상기 전원 차단 프로세스가 실행되었음을 나타내도록 배치되는 제 2 서명을 기록하는 단계를 더 포함하는 메모리 시스템 사용 방법.
  3. 제 2 항에 있어서,
    적어도 하나의 지정된 메모리 영역에 상기 제 2 서명을 기록하는 상기 단계 이후에 상기 메모리 시스템으로부터 전원을 제거하는 단계를 더 포함하는 메모리 시스템 사용 방법.
  4. 제 2 항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역에 상기 제 2 서명을 기록하는 상기 단계는 상기 적어도 하나의 지정된 메모리 영역에 상기 제 2 서명과 함께 추가의 정보를 기록하는 단계를 포함하는 메모리 시스템 사용 방법.
  5. 제 2 항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역은 블럭이며, 상기 적어도 하나의 지정된 메모리 영역에 상기 제 2 서명을 기록하는 상기 단계는 상기 블럭에 포함된 제 2 페이지에 상기 제 2 서명을 기록하는 단계를 포함하는 메모리 시스템 사용 방법.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역에 상기 제 1 서명을 기록하는 상기 단계는 상기 블럭에 포함된 제 1 페이지에 상기 제 1 서명을 기록하는 단계를 포함하는 메모리 시스템 사용 방법.
  7. 제 2 항에 있어서,
    상기 전원 차단 프로세스를 실행하는 상기 단계는 파일 복사 프로세스를 종료하는 단계 및 상기 비휘발성 메모리에 관련된 물리 블럭을 변형시키는 단계 중적어도 한 단계를 포함하는 메모리 시스템 사용 방법.
  8. 제 1 항에 있어서,
    상기 적어도 하나의 메모리 영역에 상기 제 1 서명을 기록하는 상기 단계는 상기 적어도 하나의 지정된 메모리 영역에 상기 제 1 서명과 함께 추가의 정보를 기록하는 단계를 포함하는 메모리 시스템 사용 방법.
  9. 제 1 항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역은 블럭이며, 상기 적어도 하나의 지정된 메모리 영역에 상기 제 1 서명을 기록하는 상기 단계는 상기 블럭에 포함된 제 1 페이지에 상기 제 1 서명을 기록하는 단계를 포함하는 메모리 시스템 사용 방법.
  10. 제 1 항에 있어서,
    상기 비휘발성 메모리는 NAND 플래시 메모리인 메모리 시스템 사용 방법.
  11. 메모리 시스템으로서,
    적어도 하나의 지정된 메모리 영역을 포함하는 비휘발성 메모리;
    전원을 제공하기 위한 수단;
    상기 비휘발성 메모리를 초기화시키는 수단; 및
    상기 적어도 하나의 지정된 메모리 영역에 상기 비휘발성 메모리가 성공적으로 초기화되었음을 나타내도록 배치되는 제 1 서명을 기록하기 위한 수단을 포함하는 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 메모리 시스템에서 전원 차단 프로세스를 실행하기 위한 수단; 및
    상기 적어도 하나의 지정된 메모리 영역에 상기 전원 차단 프로세스가 실행되었음을 나타내도록 배치되는 제 2 서명을기록하기 위한 수단을 더 포함하는 메모리 시스템.
  13. 제 12 항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역은 블럭이며, 상기 적어도 하나의 지정된 메모리 영역에 상기 제 1 서명을 기록하는 단계는 상기 블럭에 포함된 제 1 페이지에 상기 제 1 서명을 기록하는 단계 및 상기 적어도 하나의 지정된 메모리 영역에 상기 제 2 서명을 기록하는 단계는 상기 블럭에 포함된 제 2 페이지에 상기 제 2 서명을 기록하는 단계를 포함하는 메모리 시스템.
  14. 제 11 항에 있어서,
    상기 비휘발성 메모리는 NAND 플래시 메모리인 메모리 시스템.
  15. 메모리 장치로서,
    비휘발성 메모리내의 적어도 하나의 지정된 메모리 영역에서 유지되도록 배치되는 코드 장치;
    제 1 서명이 상기 적어도 하나의 지정된 메모리 영역에 기록되어 상기 비휘발성 메모리가 성공적으로 초기화될 때 상기 비휘발성 메모리가 성공적으로 초기화되었음을 나타내도록 하는 코드 장치; 및
    상기 코드 장치를 저장하도록 배치되는 메모리 섹션을 포함하는 메모리 장치.
  16. 제 15항에 있어서,
    제 2 서명이 상기 적어도 하나의 지정된 메모리 영역에 기록되어 전원 차단 프로세스가 성공적으로 실행될 때 전원 차단 프로세스가 성공적으로 실행되었음을 나타내도록 하는 코드 장치를 더 포함하는 메모리 장치.
  17. 제 16항에 있어서, 상기 적어도 하나의 지정된 메모리 영역은 블럭이며, 상기 제 1 서명이 상기 적어도 하나의 지정된 메모리 영역에 기록되도록 하는 코드 장치는 상기 제 1 서명이 상기 블럭 내에 포함된 제 1 페이지에 기록되도록 하는 코드 장치를 포함하고, 상기 제 2 서명이 상기 적어도 하나의 지정된 메모리 영역에 기록되도록 하는 코드 장치는 상기 제 2 서명이 상기 블럭 내에 포함된 제 2 페이지에 기록되도록 하는 코드 장치를 포함하는 메모리 장치.
  18. 제 15항에 있어서,
    상기 코드 장치는 소프트웨어 코드 장치 및 펌웨어 코드 장치 중 하나인 메모리 장치.
  19. 적어도 하나의 지정된 메모리 영역을 가지는 비휘발성 메모리를 포함하는 메모리 시스템을 사용하기 위한 방법으로서,
    상기 메모리 시스템에 전원을 제공하는 단계;
    상기 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하는 단계;
    상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행하지 않은 것이 결정되면 상기 비휘발성 메모리에서 상기 비휘발성 메모리를 사용할 준비가 되도록 배치되는 제 1 프로세스를 수행하는 단계; 및
    상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행한 것이 결정되면, 상기 비휘발성 메모리가 사용되도록 실질적으로 인에이블하는 단계를 포함하는 메모리 시스템 사용 방법.
  20. 제 19항에 있어서,
    상기 비휘발성 메모리가 사용되도록 실질적으로 인에이블하는 상기 단계는 상기 비휘발성 메모리가 실질적으로 인에이블되는 것을 나타내도록 상기 적어도 하나의 지정된 메모리 영역에 제 1 서명을 기록하는 단계를 포함하는 메모리 시스템 사용 방법.
  21. 제 19항에 있어서,
    상기 메모리 시스템이 이전에 상기 실질적으로 정상적인 전원 차단 프로세스를 실행한 시간을 결정하는 상기 단계는 상기 적어도 하나의 지정된 메모리 영역이 상기 정상적인 전원 차단 프로세스가 이전에 발생하였음을 나타내도록 배치되는 제 1 서명을 포함하는 시기를 결정하는 단계를 포함하는 메모리 시스템 사용 방법.
  22. 제 21항에 있어서,
    상기 메모리 시스템이 상기 실질적으로 정상적인 전원 차단 프로세스를 실행하는 시기를 결정하는 상기 단계는 상기 적어도 하나의 지정된 메모리 영역이 상기 메모리 시스템이 이전에 초기화 프로세스를 실행하였는지를 나타내도록 배치되는 제 2 서명을 포함하는 시기를 결정하는 단계를 더 포함하는 메모리 시스템 사용 방법.
  23. 제 22항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역이 상기 제 2 서명을 포함하지 않고 상기 제 1 서명도 포함하지 않는 것으로 결정되면, 상기 제 1 프로세스는 상기 초기화 프로세스가 되는 메모리 시스템 사용 방법.
  24. 제 22항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역이 상기 제 2 서명은 포함하고 상기 제 1 서명은 포함하지 않는 것으로 결정되면, 상기 제 1 프로세스는 데이터 복구 프로세스가 되는 메모리 시스템 사용 방법.
  25. 제 24항에 있어서,
    상기 데이터 복구 프로세스는 상기 비휘발성 메모리 내의 메모리를 재사용하도록 배치되는 메모리 시스템 사용 방법.
  26. 제 25항에 있어서,
    상기 데이터 복구 프로세스는 파일 복사 프로세스 및 상기 비휘발성 메모리와 관련된 물리 블럭을 변형시키는 단계 중 적어도 한 단계를 포함하는 메모리 시스템 사용 방법.
  27. 제 19항에 있어서,
    상기 제 1 프로세스는 데이터 복구 프로세스 및 메모리 초기화프로세스 중 하나인 메모리 시스템 사용 방법.
  28. 제 19항에 있어서,
    상기 비휘발성 메모리는 NAND 플래시 메모리인 메모리 시스템 사용 방법.
  29. 메모리 시스템으로서,
    적어도 하나의 지정된 메모리 영역을 포함하는 비휘발성 메모리;
    상기 메모리 시스템에 전원을 제공하기 위한 수단;
    상기 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하기 위한 수단;
    상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행하지 않은 것으로 결정되면 상기 비휘발성 메모리에서 상기 비휘발성 메모리를 사용할 준비가 되도록 배치되는 제 1 프로세스를 수행하기 위한 수단; 및
    상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행한 것으로 결정되면 상기 비휘발성 메모리가 사용되도록 실질적으로 인에이블하기 위한 수단을 포함하는 메모리 시스템.
  30. 제 29항에 있어서,
    상기 비휘발성 메모리가 사용되도록 실질적으로 인에이블하기 위한 상기 수단은 상기 비휘발성 메모리가 실질적으로 인에이블되는 것을 나타내도록 상기 적어도 하나의 지정된 메모리 영역에 제 1 서명을 기록하기 위한 수단을 포함하는 메모리 시스템.
  31. 제 29항에 있어서,
    상기 메모리 시스템이 이전에 상기 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하기 위한 상기 수단은 상기 적어도 하나의 지정된 메모리 영역이 상기 정상적인 전원 차단 프로세스가 이전에 발생하였음을 나타내도록 배치되는 제 1 서명을 포함하는 시기를 결정하기 위한 수단을 포함하는 메모리 시스템.
  32. 제 31항에 있어서,
    상기 메모리 시스템이 이전에 상기 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하는 단계는 상기 적어도 하나의 지정된 메모리 영역이 상기 메모리 시스템이 이전에 초기화 프로세스를 실행하였음을 나타내도록 배치되는 제 2 서명을 포함하는 시기를 결정하기 위한 수단을 더 포함하는 메모리 시스템.
  33. 제 32항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역이 상기 제 2 서명을 포함하지 않고 상기 제 1 서명도 포함하지 않는 것으로 결정되면, 상기 제 1 프로세스는 초기화 프로세스가 되는 메모리 시스템.
  34. 제 32항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역이 상기 제 2 서명은 포함하고 상기 제 1 서명은 포함하지 않는 것으로 결정되면, 상기 제 1 프로세스는 데이터 복구프로세스가 되는 메모리 시스템 사용 방법.
  35. 메모리 시스템으로서,
    상기 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하도록 하는 코드 장치;
    상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세서를 실행하지 않은 것으로 결정되면 상기 메모리 시스템과 관련된 비휘발성 메모리에서 상기 비휘발성 메모리가 사용할 준비가 되도록 배치되는 제 1 프로세스가 수행되도록 하기 위해 배치되는 코드 장치;
    상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행한 것으로 결정되면 상기 비휘발성 메모리가 사용을 위해 인에이블되도록 하기 위해 배치되는 코드 장치; 및
    상기 코드 장치를 저장하는 메모리 영역을 포함하는 메모리 시스템.
  36. 제 35항에 있어서,
    상기 비휘발성 메모리가 사용을 위해 인에이블되도록 하기 위해 배치되는 코드 장치는 상기 비휘발성 메모리의 적어도 하나의 지정된 메모리 영역에 제 1 서명을 기록하여 상기 비휘발성 메모리가 사용을 위해 인에이블되는 것을 나타내도록 배치되는 코드 장치를 포함하는 메모리 시스템.
  37. 제 35항에 있어서,
    상기 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하는 코드 장치는 상기 비휘발성 메모리의 상기 적어도 하나의 지정된 메모리 영역이 상기 정상적인 전원 차단 프로세스가 이전에 발생했는지를 나타내도록 배치되는 제 1 서명을 포함하는 시기를 결정하도록 하기 위해 배치되는 코드 장치를 포함하는 메모리 시스템.
  38. 제 37항에 있어서,
    상기 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하는 코드 장치는 상기 적어도 하나의 지정된 메모리 영역이 상기 메모리 시스템이 이전에 초기화 프로세스를 실행하였는지를 나타내도록 배치되는 제 2 서명을 포함하는 시기를 결정하도록 하기 위해 배치되는 코드 장치를 더 포함하는 메모리 시스템.
  39. 제 38항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역이 상기 제 2 서명을 포함하지 않고 상기 제 1 서명도 포함하지 않는 것으로 결정되면, 상기 제 1 프로세스는 상기 초기화 프로세스가 되는 메모리 시스템.
  40. 제 38항에 있어서,
    상기 적어도 하나의 지정된 메모리 영역이 상기 제 2 서명은 포함하고, 상기 제 1 서명은 포함하지 않는 것으로 결정되면, 상기 제 1 프로세스는 데이터 복구 프로세스가 되는 메모리 시스템.
  41. 메모리 시스템으로서,
    비휘발성 메모리; 및
    상기 메모리 시스템이 이전에 실질적으로 정상적인 전원 차단 프로세스를 실행한 시기를 결정하여 상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행하지 않은것으로 결정되면 상기 비휘발성 메모리에서 상기 비휘발성 메모리가 사용되도록 준비하기 위해 배치되는 제 1 프로세스를 수행하고 상기 메모리 시스템이 이전에 정상적인 전원 차단 프로세스를 실행한 것으로 결정되면 상기 비휘발성 메모리가 사용되도록 실질적으로 인에이블하기 위해 배치되는 제어 장치를 포함하는 메모리 시스템.
  42. 제 41항에 있어서,
    상기 제 1 프로세스는 데이터 복구 프로세스 및 메모리 초기화 프로세스 중 하나인 메모리 시스템.
  43. 제 41항에 있어서,
    상기 비휘발성 메모리는 NAND 플래시 메모리인 메모리 시스템.
  44. 메모리 시스템으로서,
    적어도 하나의 지정된 영역을 포함하는 비휘발성 메모리; 및
    상기 비휘발성 메모리를 초기화시키고 상기 적어도 하나의 지정된 메모리 영역에 상기 메모리 시스템이 성공적으로 초기화되었음을 나타내도록 배치되는 제 1 서명을 기록하기 위해 배치되는 제어기를 포함하는 메모리 시스템.
  45. 제 44항에 있어서,
    상기 제어기는 상기 메모리 시스템에서 전원 차단 프로세스를 실행하고 상기 적어도 하나의 지정된 메모리 영역에 상기 전원 차단 프로세스가 실행되었음을 나타내도록 배치되는 제 2 서명을 기록하기 위해 더 배치되는 메모리 시스템.
  46. 제 44항에 있어서,
    상기 비휘발성 메모리는 NAND 플래시 메모리인 메모리 시스템.
KR1020030075147A 2002-10-28 2003-10-27 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블럭 KR20040038712A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42216602P 2002-10-28 2002-10-28
US60/422,166 2002-10-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020090075023A Division KR101004876B1 (ko) 2002-10-28 2009-08-14 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블록

Publications (1)

Publication Number Publication Date
KR20040038712A true KR20040038712A (ko) 2004-05-08

Family

ID=32094175

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020030075147A KR20040038712A (ko) 2002-10-28 2003-10-27 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블럭
KR1020090075023A KR101004876B1 (ko) 2002-10-28 2009-08-14 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블록

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020090075023A KR101004876B1 (ko) 2002-10-28 2009-08-14 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블록

Country Status (5)

Country Link
US (2) US7181611B2 (ko)
EP (1) EP1416379B1 (ko)
JP (2) JP4371771B2 (ko)
KR (2) KR20040038712A (ko)
CN (2) CN101833482A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100973773B1 (ko) * 2007-12-28 2010-08-04 정요섭 수족관 정수장치

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7093101B2 (en) * 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
US20050165909A1 (en) * 2003-12-19 2005-07-28 Cromer Daryl C. Data processing system and method for permitting a server to remotely access asset information of a mobile client
TWI262444B (en) * 2004-04-28 2006-09-21 Compal Electronics Inc Method for creating multiple main partitions on IDE hard disk
TWI260019B (en) 2004-05-21 2006-08-11 Fujitsu Ltd Semiconductor memory device and memory system
EP1630657A1 (en) * 2004-08-30 2006-03-01 STMicroelectronics S.r.l. Embedded storage device with integrated data-management functions and storage system incorporating it
ATE347731T1 (de) * 2004-10-04 2006-12-15 Research In Motion Ltd System und verfahren zum datensichern bei stromausfall
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US20090172269A1 (en) * 2005-02-04 2009-07-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and associated data merge method
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US7512838B2 (en) * 2005-05-10 2009-03-31 Spectra Logic Corporation Data integrity analysis for a data storage system
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
US7716461B2 (en) * 2006-01-12 2010-05-11 Microsoft Corporation Capturing and restoring application state after unexpected application shutdown
TWI333145B (en) * 2006-04-03 2010-11-11 Quanta Storage Inc Method for updating data in a flash rom
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US7765394B2 (en) * 2006-10-31 2010-07-27 Dell Products, Lp System and method for restoring a master boot record in association with accessing a hidden partition
US7721078B2 (en) * 2006-10-31 2010-05-18 Dell Products, Lp Method and system to dynamically boot to a non-visible partition
KR100818802B1 (ko) * 2007-01-03 2008-04-02 삼성전자주식회사 파워다운 응답신호를 발생하는 반도체 메모리 장치 및 상기반도체 장치의 파워다운 방법
KR100918707B1 (ko) * 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
JP5286796B2 (ja) * 2008-01-17 2013-09-11 日本電気株式会社 メモリ制御装置
US7925822B2 (en) * 2008-01-31 2011-04-12 Sandisk Il Ltd Erase count recovery
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8266365B2 (en) * 2008-12-17 2012-09-11 Sandisk Il Ltd. Ruggedized memory device
US8370603B2 (en) * 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
JP5317690B2 (ja) * 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8489907B2 (en) * 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
WO2011081232A1 (ko) * 2009-12-29 2011-07-07 주식회사 프롬나이 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
JP5593254B2 (ja) * 2010-05-12 2014-09-17 パナソニック株式会社 半導体メモリ装置及び半導体メモリシステム
US8812908B2 (en) * 2010-09-22 2014-08-19 Microsoft Corporation Fast, non-write-cycle-limited persistent memory for secure containers
US9064116B2 (en) * 2010-11-08 2015-06-23 Intel Corporation Techniques for security management provisioning at a data storage device
US9043642B2 (en) * 2010-12-20 2015-05-26 Avago Technologies General IP Singapore) Pte Ltd Data manipulation on power fail
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
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US8886972B2 (en) 2012-06-21 2014-11-11 Transcend Information, Inc. Power control module has voltage setting module that determine burst operating voltage and operate during execution of command in flash drive
KR20140007990A (ko) * 2012-07-09 2014-01-21 삼성전자주식회사 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법
FR2993669B1 (fr) * 2012-07-19 2014-08-29 Continental Automotive France Procede de diagnostic d’un mecanisme de coupures intempestives de l’alimentation electrique d’un calculateur de vehicule automobile
US9690642B2 (en) * 2012-12-18 2017-06-27 Western Digital Technologies, Inc. Salvaging event trace information in power loss interruption scenarios
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
KR102127284B1 (ko) 2013-07-01 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
KR102065665B1 (ko) 2013-10-17 2020-01-13 삼성전자 주식회사 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
KR102272228B1 (ko) * 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
TWI534609B (zh) * 2015-02-03 2016-05-21 Automatic scanning and repair method for electronic devices
US20180024768A1 (en) * 2015-02-13 2018-01-25 Hewlett Packard Enterprise Development Lp Partitioning memory modules into volatile and non-volatile portions
KR102374668B1 (ko) 2015-08-31 2022-03-17 삼성전자주식회사 전력 공급 중단의 경향에 따라 불휘발성 메모리를 다르게 관리하는 스토리지 장치
CN105426268B (zh) * 2015-11-16 2018-06-26 北京四方继保自动化股份有限公司 一种防止继电保护装置断电时文件系统损坏的方法
TWI607309B (zh) * 2016-03-16 2017-12-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9691492B1 (en) * 2016-09-29 2017-06-27 Intel Corporation Determination of demarcation voltage for managing drift in non-volatile memory devices
TWI656475B (zh) * 2016-12-13 2019-04-11 慧榮科技股份有限公司 具資料儲存裝置的電子系統
TWI604373B (zh) 2016-12-13 2017-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US10482010B2 (en) * 2017-06-29 2019-11-19 Intel Corporation Persistent host memory buffer
US10373694B2 (en) * 2017-08-31 2019-08-06 Micron Technology, Inc. Responding to power loss
KR20190030790A (ko) * 2017-09-14 2019-03-25 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10528426B2 (en) * 2017-11-30 2020-01-07 Western Digital Technologies, Inc. Methods, systems and devices for recovering from corruptions in data processing units in non-volatile memory devices
KR102430798B1 (ko) * 2018-01-11 2022-08-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN111399926A (zh) * 2018-12-13 2020-07-10 北汽福田汽车股份有限公司 下载启动程序的方法和装置
US11181277B2 (en) * 2019-01-25 2021-11-23 Weber-Stephen Products Llc Pellet grills
CN109871239A (zh) * 2019-02-18 2019-06-11 深圳忆联信息系统有限公司 一种支持toggle协议Nand颗粒的初始化方法及其系统
CN115004162A (zh) * 2020-03-11 2022-09-02 深圳市欢太科技有限公司 确定数据完整性的方法、装置、电子设备及存储介质
CN112199321A (zh) * 2020-09-28 2021-01-08 中国航空工业集团公司雷华电子技术研究所 一种利用单片机内部xram和flash处理电源故障数据的方法
CN112631516B (zh) * 2020-12-22 2022-09-30 上海宏力达信息技术股份有限公司 一种具有寿命管理的flash文件管理系统
US12014080B2 (en) 2021-11-10 2024-06-18 Samsung Electronics Co., Ltd. Memory system using host memory buffer and operation method thereof
CN114637386A (zh) * 2022-03-24 2022-06-17 南京英锐创电子科技有限公司 低功耗调试通路的处理方法、调试系统及电子设备

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
EP0617363B1 (en) * 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5222109A (en) * 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US5438573A (en) * 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5557775A (en) 1994-02-23 1996-09-17 International Business Machines Corporation Expert system for designing computer networks
JPH0830520A (ja) 1994-07-13 1996-02-02 Toshiba Corp コンピュータシステム
US5557777A (en) * 1994-09-30 1996-09-17 Apple Computer, Inc. Method and apparatus for system recovery from power loss
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5748940A (en) * 1995-08-17 1998-05-05 Compaq Computer Corporation Secure updating of non-volatile memory
JP3280834B2 (ja) * 1995-09-04 2002-05-13 沖電気工業株式会社 符号化通信方式における信号判定装置および受信装置ならびに信号判定方法および通信路状態推定方法
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
JP3898305B2 (ja) * 1997-10-31 2007-03-28 富士通株式会社 半導体記憶装置、半導体記憶装置の制御装置及び制御方法
KR100297986B1 (ko) * 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6230285B1 (en) 1998-09-08 2001-05-08 Symantec Corporation Boot failure recovery
US6216226B1 (en) * 1998-10-02 2001-04-10 International Business Machines Corporation Method and system for dynamically selecting a boot process within a data processing system
US6260156B1 (en) * 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP3646303B2 (ja) * 2000-12-21 2005-05-11 日本電気株式会社 コンピュータシステムとそのメモリ管理方法、及びメモリ管理プログラムを記録した記録媒体
US6510488B2 (en) * 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US6820196B2 (en) * 2001-04-09 2004-11-16 Sony Corporation Flash memory initialization in a DTV set-top box
JP2002334586A (ja) * 2001-05-07 2002-11-22 Yamaha Corp フラッシュメモリを用いた情報記憶方法および情報記憶プログラム
JP2002351750A (ja) * 2001-05-22 2002-12-06 Funai Electric Co Ltd データ書き込みシステム
US6915440B2 (en) * 2001-06-12 2005-07-05 International Business Machines Corporation Apparatus, program product and method of performing power fault analysis in a computer system
JP3822081B2 (ja) * 2001-09-28 2006-09-13 東京エレクトロンデバイス株式会社 データ書込装置、データ書込制御方法及びプログラム
US7028172B2 (en) * 2001-10-29 2006-04-11 Microsoft Corporation Method and system for obtaining computer shutdown information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100973773B1 (ko) * 2007-12-28 2010-08-04 정요섭 수족관 정수장치

Also Published As

Publication number Publication date
US7809962B2 (en) 2010-10-05
US20040083405A1 (en) 2004-04-29
KR101004876B1 (ko) 2010-12-28
US7181611B2 (en) 2007-02-20
EP1416379B1 (en) 2012-11-21
EP1416379A2 (en) 2004-05-06
JP2004152301A (ja) 2004-05-27
KR20090091101A (ko) 2009-08-26
EP1416379A3 (en) 2006-05-24
JP4371771B2 (ja) 2009-11-25
JP2009283005A (ja) 2009-12-03
CN101833482A (zh) 2010-09-15
CN1540672A (zh) 2004-10-27
JP5162535B2 (ja) 2013-03-13
US20070106919A1 (en) 2007-05-10

Similar Documents

Publication Publication Date Title
KR101004876B1 (ko) 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블록
US7089349B2 (en) Internal maintenance schedule request for non-volatile memory system
US7254668B1 (en) Method and apparatus for grouping pages within a block
US7472251B2 (en) Data storage apparatus detachably mounted to a host apparatus
US7610434B2 (en) File recording apparatus
US7039754B2 (en) Detachably mounted removable data storage device
US8041879B2 (en) Flash memory backup system and method
EP1036364B1 (en) Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US7702880B2 (en) Hybrid mapping implementation within a non-volatile memory system
JP4268396B2 (ja) 1回プログラム可能な不揮発性メモリデバイスのファイル管理
JP2010267290A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
JPH10124384A (ja) 不揮発性半導体メモリの制御方法
US8706990B2 (en) Adaptive internal table backup for non-volatile memory system
EP2267725A1 (en) Memory device for managing the recovery of a non volatile memory

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E601 Decision to refuse application
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

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

Effective date: 20100330