KR100991718B1 - 플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는방법 - Google Patents

플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는방법 Download PDF

Info

Publication number
KR100991718B1
KR100991718B1 KR1020020073123A KR20020073123A KR100991718B1 KR 100991718 B1 KR100991718 B1 KR 100991718B1 KR 1020020073123 A KR1020020073123 A KR 1020020073123A KR 20020073123 A KR20020073123 A KR 20020073123A KR 100991718 B1 KR100991718 B1 KR 100991718B1
Authority
KR
South Korea
Prior art keywords
unit
flag
erasing
flash memory
erased
Prior art date
Application number
KR1020020073123A
Other languages
English (en)
Other versions
KR20030043691A (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 KR20030043691A publication Critical patent/KR20030043691A/ko
Application granted granted Critical
Publication of KR100991718B1 publication Critical patent/KR100991718B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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

Landscapes

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

Abstract

플래시 메모리의 유닛의 소거를 관리하는 방법. 유닛이 소거되기 전이거나, 전력손실의 경우는 소거동안에 하나 이상의 유닛의 소거가 진행중이라는 지시가 제공된다. 소거 완료에 이어서, 소거전에 제공된 지시는 소거되거나, 소거완료의 지시에 의해 오프셋된다. 파워-업할 때 또는, 어떤 실시예에서는, 기록전에 그 지시가 점검되고 완전히 소거되지 않은 유닛은 다시 소거된다. 본 발명은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합내에 구현된다. 완전히 소프트웨어에 의존적이지 않은 실시예에서, 소거중 플래그 및 소거완료 플래그와 같은 지시를 저장하고 대응하는 유닛 넘버를 저장하는 적당한 비휘발성 레지스터가 제공된다.
플래시 메모리, 소거중 플래그, 소거완료 플래그, 전력 손실, 소거, 동기, 비동기.

Description

플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는 방법{DETECTING PARTIALLY ERASED UNITS IN FLASH DEVICES}
도1은 종래의 플래시 메모리 디바이스를 도시하는 도면이고,
도2는 본 발명의 제1실시예의 플래시 메모리 디바이스를 도시하는 도면이고,
도3은 도2의 플래시 메모리 디바이스의 소거 작동의 플로우챠트이고,
도4는 도2의 플래시 메모리 디바이스의 기록 작동의 플로우챠트이고,
도5는 본 발명의 제2실시예의 플래시 메모리 디바이스를 도시하는 도면이고,
도6은 도5의 플래시 메모리 디바이스의 소거 작동의 플로우챠트이고,
도7은 도5 및 도11의 플래시 메모리 디바이스의 파워-업 과정의 부분 플로우챠트이고,
도8은 본 발명의 제3실시예의 플래시 메모리 디바이스를 도시하는 도면이고,
도9는 도8의 플래시 메모리 디바이스의 소거 작동의 플로우챠트이고,
도10은 도8의 플래시 메모리 디바이스의 기록 작동의 플로우챠트이고,
도11은 본 발명의 제4실시예의 플래시 메모리 디바이스를 도시하는 도면이고,
도12는 도11의 플래시 메모리 디바이스의 파워-다운 과정의 부분 플로우챠트이다.
본 발명은 플래시 메모리에 관한 것이고, 보다 상세하게는 전원손실시의 부분적인 소거에 대하여 견고한 플래시 메모리에 관한 것이다.
플래시 메모리 관리 시스템(여기에 참조로서 언급되는 미국 특허 제5,404,485호 및 제5,937,425호에 개시된 바와 같이)은 항시 발생할 수 있는 예기치 않는 전력손실 이후에도 그 무결성(integrity)을 유지해야 한다. 이것을 달성하는데 곤란한 점은 전원손실이 플래시 디바이스에 의해 수행되는 어떠한 작동의 중간에 발생하거나, 플래시 데이터 내용의 일관된 해석을 유지하는데 필수적인 데이터 구조를 관리하는 소프트웨어 루틴중의 하나의 루틴 중간에 발생할 수 있다는 것이다.
이러한 점에서 고려되어야 하는 가장 중요한 것중의 하나는 플래시 디바이스가 소거 작동을 수행하는 동안 발생하는 전력손실이다. 플래시 디바이스는 기록되어지는 주소가 "소거" 상태에 있지 않으면, 데이터가 기록될 수 없는 메모리 디바이스이다. 게다가, 소거는 일반적으로 개개의 주소에 대하여 행해질 수 없고, 상대적으로 큰 사이즈의 주소 그룹(전형적인 값은 수 킬로바이트에서 수백 킬로바이까지이다)에 대하여 행하여져야만 한다. 하나의 작동에서 소거되는 플래시 매체의 청크(chunk)는 여기서 "유닛"으로 불려진다. 유닛의 크기는 플래시 디바이스 하드웨어의 특징(하드웨어로의 소거 명령시에 매체의 최소 청크가 주소지정되어지는)일 수 있거나, 또는 몇몇의 하드웨어 기반 유닛을 보다 큰 하나의 논리 유닛으로 결합하여 항상 단일 엔티티(entity)로 조작 및 소거되어야 하는 플래시 관리 소프트웨어의 특징일 수 있다는 점에 유념해야 한다.
그런 소거 작동은 꽤 긴 프로세스이고(플래시 타입에 따라, 수 밀리초에서 수 초사이), 따라서 소거 작동이 처리되는 동안 전력손실이 발생할 가능성이 무시될 수 없다. 그런 인터럽터된 소거 작동을 가지는 데 있어서의 위험성은 플래시 디바이스가 그 전원을 손실하였을 때, 부분적으로 소거된 상태-소거된 유닛에서 몇 비트는 이미 그들의 목표 소거 상태로 되고 나머지는 여전히 비-소거 상태로 남아 있는 상태-로 있을 수 있다는 것이다. 그런 상태가 검출되지 않거나 적절히 처리되지 않으면, 그 유닛은 다음 사용에서 완전히 소거된 것으로 인식될 것이지만, 다음의 프로그래밍 작동은 바람직하게 작동하지 않을 것이다. 게다가, 어떤 플래시 디바이스가 그들 내부 프로그래밍 검증을 수행하는 방법 때문에, 프로그래밍 에러의 영향이 검증 매카니즘에 의해 검출되지 않는다. 이것은 프로그래밍 검증이 일반적으로(NAND 플래시) 소거된 비트를 비-소거된 상태로 하는데 실패를 검지할 뿐이기 때문이고, 그러나 상기 영향은 소거된 상태대신에 비-소거 상태에 있는 비트에 영향을 미치고, 이것은 검출되지 않는다.
게다가, 소거된 유닛에서 모든 비트가 소거된 것( 즉-완전히 소거된 것으로 보이는 유닛)으로 동시에 판독할 지라도, 전력손실은 소거가 불충분하거나 덜 신뢰성이 있는 것으로 야기할 수 있을 것이고, 결국 이 유닛의 데이타는 기억 능력을 떨어뜨려, 축적된 에러로 나타날 것이다. 따라서, 그 소거가 전력손실에 의해 인터 럽터된 유닛에 의존하는 것이 아니라 실제로 그것을 사용하기 전에 그 유닛을 다시 소거하는 것이 매우 바람직하다. 이 마지막 이유는, 유닛을 사용하기 전에 유닛이 완전히 소거된 것을 검증하기 위하여 전체 유닛 내용을 항상 판독하는 간단한(그러나 매우 비효율적인)방법이 좋은 솔루션이 아니라는 것을 설명해준다.
상기 문제점은 당업계에서 잘 알려져 있고, 그것에 대한 소프트웨어 솔루션이 있다. 간단하고 일반적인 솔루션은 인터럽터된 소거를 검출하기 위해 "소거 마크"를 사용하는 것이다. 이 솔루션에 따르면, 어떤 소거 명령을 수행한 후, 소프트웨어는 항상 특별한 서명("소거 마크")를 소거된 유닛의 미리 지정된 영역에 기록해야 한다. 또한 어떤 소거 작동을 수행하기 전에, 유닛의 소거 마크가 소거 마크를 없애기 위해 재기록되어야 한다. 게다가, 유닛이 사용되도록 할당될 때마다, 첫번째 단계는 유닛의 소거 마크의 존재를 검사하는 것이다. 유닛이 정상적으로 소거를 완료했다면, 소거마크는 거기에 있다. 그러나, 이 유닛의 마지막 소거 작동이 전력손실에 의해 인터럽터되면 소거 마크는 존재하지 않는다. 따라서, 소프트웨어는 새로이 할당된 유닛이 신뢰성있게 소거되었는지를 판단할 수 있고, 그렇지 않다면 다시 소거해야 한다. 이러한 솔루션은 꽤 오랫동안 사용되어졌다. 예를 들어 이스라엘, 크파 사바의 엠시스템스 플래시 디스크 파이오니어사에 의해 제공된 플래시 디스크 드라이버의 TrueFFS 군이다.
이러한 솔루션은 플래시 관리 시스템이 더 이후의 기록을 위해 그들을 소거해야만 하기 전에 몇몇의 플래시 페이지내로 하나이상의 기록 작동을 하도록 요구한다(여기서 이해되는 바와 같이, 플래시 페이지는 하나의 작동으로 유닛내의 하나 이상의 페이지를 가진 물리적인 매체내로 기록되어 질 수 있는 데이타의 최소의 청크이다). 이것은 소거마크가 먼저 기록되고, 그 다음 단계로 사용자 데이타가 동일 페이지내로 기록되어지기 때문에 그렇다. 추가의 기록 작동은 소거 마크를 없애고, 플래시 관리 시스템에 의해 취해진 다른 단계에 대하여 그 제어 알고리즘을 지원하기 위하여 일어날 수 있다.
현재 사용되는 대부분의 플래시 메모리 디바이스는 다중기록(플래시 기술분야의 용어로서 부분 페이지 프로그래밍 또는 PPP로 알려진)의 능력을 지원한다. 전형적인 PPP 값은 현재 3에서 10이다. 최근, 소수의 플래시 메모리 디바이스 벤더가 그들의 최첨단 플래시 메모리 디바이스는 1보다 큰 PPP 성능을 지원하지 않을 것이라고 발표했는데, 이것은 먼저 소거하지 않고 동일 페이지에 2번 기록되도록 허락하지 않는다는 것을 의미한다. 이러한 제한은 잠재적으로 부분적으로-소거된 플래시 유닛을 검출하는 종래의 방법을 무용지물로 만든다.
따라서 PPP=1 플래시 메모리의 불완전한 소거를 검출하는 방법에 대한 광범위한 요구와 이 방법을 사용하는 이점이 있는 것이다.
본 발명에 따르면, 복수의 주소지정가능한 영역을 각각 포함하는 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법에 있어서, 상기 방법은
(a) 각각의 유닛에 상기 각각의 유닛의 주소지정가능한 영역으로부터 분리된 플래그 레지스터를 제공하는 단계;
(b) 적어도 하나의 유닛을 소거하기 전에, 소거되어야 할 상기 적어도 하나의 유닛의 상기 플래그 레지스터내에 소거중 플래그를 설정하는 단계; 및
(c) 상기 적어도 하나의 유닛을 소거하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법이 제공된다.
본 발명에 따르면, 복수의 주소지정가능한 영역을 각각 포함하고, 유닛 넘버를 각각 가지는 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법에 있어서, 상기 방법은
(a) 상기 유닛의 주소지정가능한 영역으로부터 분리된 적어도 하나의 플래그 레지스터를 제공하는 단계;
(b) 상기 적어도 하나의 플래그 레지스터에 대하여, 상기 유닛의 주소지정가능한 영역으로부터 분리된 유닛 넘버 레지스터를 제공하는 단계;
(c) 상기 적어도 하나의 유닛을 소거하기 전에, 소거되어야 할 상기 적어도 하나의 유닛 각각에 대하여:
(i) 상기 적어도 하나의 플래그 레지스터의 하나에 소거중 플래그를 설정하는 단계, 및
(ii) 상기 하나의 플래그 레지스터에 대응하는 상기 유닛 넘버 레지스터에 상기 각각의 유닛의 유닛 넘버를 저장하는 단계; 및
(d) 상기 적어도 하나의 유닛을 소거하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법이 제공된다.
본 발명에 따르면, 복수의 주소지정가능한 영역을 각각 포함하는 적어도 하나의 페이지를 각각 포함하고, 유닛 넘버를 각각 가지는 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법에 있어서, 상기 방법은:
(a) 플래시 메모리내에 적어도 하나의 소거중 영역을 할당하는 단계;
(b) 상기 적어도 하나의 소거중 영역의 각각에 대하여, 플래시 메모리내에 상기 적어도 하나의 소거중 영역으로부터 분리된 소거완료 영역을 할당하는 단계;
(c) 상기 적어도 하나의 유닛을 소거하기 전에, 소거될 상기 적어도 하나의 유닛의 각각에 대하여, 상기 적어도 하나의 소거중 영역의 대응하는 하나에 소거중 플래그를 설정하는 단계;
(d) 상기 적어도 하나의 유닛을 소거하는 단계; 및
(e) 상기 적어도 하나의 유닛의 각각에 대하여, 상기 각각의 유닛을 소거하는 단계에 이어서, 상기 적어도 하나의 소거완료 영역의 대응하는 하나에 소거완료 플래그를 설정하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법이 제공된다.
본 발명에 따르면, 복수의 주소지정가능한 영역을 각각 포함하고, 유닛 넘버를 각각 가지는 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법에 있어서, 상기 방법은:
(a) 플래시 메모리내에 상기 적어도 소거중 영역을 할당하는 단계;
(b) 상기 적어도 하나의 소거중 영역의 각각에 대해, 플래시 메모리내에 상기 적어도 하나의 소거중 영역의 각각으로부터 분리된 유닛 넘버 저장 영역을 할당하는 단계;
(c) 상기 적어도 하나의 유닛을 소거하기 전에, 소거될 상기 적어도 하나의 유닛에 대하여:
(i) 상기 적어도 소거중 영역의 대응하는 하나에 소거중 플래그를 설정하는 단계, 및
(ii) 상기 대응하는 하나의 소거중 영역에 대응하는 상기 유닛 넘버 저장 영역에 상기 각각의 유닛의 유닛 넘버를 저장하는 단계; 및
(d) 상기 적어도 하나의 유닛을 소거하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법이 제공된다.
본 발명에 따르면 복수의 주소지정가능한 영역을 각각 가지는 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법에 있어서, 상기 방법은
(a) 유닛의 주소지정가능한 영역으로부터 분리된 적어도 하나의 플래그 레지스터를 제공하는 단계;
(b) 상기 적어도 하나의 유닛을 소거하기 전에, 상기 적어도 하나의 플래그 레지스터의 하나에 소거중 플래그를 설정하는 단계;
(c) 상기 적어도 하나의 유닛을 소거하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법이 제공된다.
본 발명에 따르면, 복수의 주소지정가능한 영역을 각각 포함하고, 개개의 유닛 넘버를 각각 가지는 복수의 유닛을 포함하고, 실질적으로 동시에 어떤 최대수의 유닛을 소거하도록 작동되는 플래시 메모리를 관리하는 방법에 있어서, 상기 방법 은,
(a) 상기 최대 수의 유닛과 동일 수의 플래그 레지스터를 제공하는 단계;
(b) 상기 플래그 레지스터 각각에 대하여, 유닛 넘버 레지스터를 제공하는 단계;
(c) 적어도 하나의 유닛을 소거하는 단계;
(d) 플래시 메모리에 의한 전력손실을 검출하는 단계; 및
(e) 상기 전력손실이 상기 소거에 동기되면: 소거되는 상기 적어도 하나의 유닛의 각각에 대하여,
(i) 대응하는 상기 플래그 레지스터에 소거중 플래그를 설정하는 단계
(ii) 상기 대응하는 플래그 레지스터에 대응하는 상기 유닛 넘버 레지스터에 상기 각각의 유닛의 유닛 넘버를 저장하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법이 제공된다.
본 발명에 따르면, (a) 복수의 주소지정가능한 영역을 각각 포함하는 복수의 유닛; 및
(b) 상기 각각의 유닛에 대하여, 상기 각각의 유닛이 소거되도록 되어있다는 것을 지시하기 위해 상기 각각의 유닛의 주소지정가능한 영역으로부터 분리된 플래그 레지스터를 포함하는 것을 특징으로 하는 플래시 메모리 디바이스가 제공된다.
본 발명에 따르면, (a) 복수의 주소지정가능한 영역을 각각 포함하고, 개개 의 유닛 넘버를 각각 가지는 복수의 유닛;
(b) 상기 유닛의 하나가 소거되도록 되어 있다는 것을 지시하는 소거중 플래그를 저장하고 상기 주소지정가능한 영역으로부터 분리된 적어도 하나의 플래그 레지스터; 및
(c) 상기 적어도 하나의 플래그 레지스터의 각각에 대하여, 상기 하나의 유닛의 유닛 넘버를 저장하고, 상기 주소지정가능한 영역으로부터 분리된 대응하는 유닛 넘버 레지스터를 포함하는 것을 특징으로 하는 플래시 메모리 디바이스가 제공된다.
본 발명에 따르면, (a) 복수의 주소지정가능한 영역을 각각 가지고, 개개의 유닛 넘버를 각각 가지는 복수의 유닛;
(b) 전력손실을 검출하는 검출 매카니즘; 및
(c) 상기 검출 매카니즘이 상기 전력손실을 검출하면, 소거되는 상기 유닛의 상기 유닛 넘버를 기록하는 기록 매카니즘을 포함하는 것을 특징으로 하는 플래시 메모리 디바이스가 제공된다.
본 발명의 제1실시예에서, 플래시 메모리의 각각의 유닛은 플래시 메모리의 주소지정가능한 영역으로부터 분리된 개개의 비휘발성 플래그 레지스터가 제공된다. 유닛의 플래그 레지스터에 소거중 플래그를 설정하는 것은 유닛이 소거될 예정이라는 것을 지시한다. 유닛이 성공적으로 소거된 후, 바람직하게 유닛의 소거중 플래그를 클리어하는 것에 의해 유닛이 소거되었다는 지시가 제공된다.
이후의 유닛에 기록은 유닛의 소거중 플래그가 클리어되었는지에 달려있다. 상세하게는, 유닛이 기록되어지기 전에, 유닛의 소거중 플래그가 클리어되었는지 검사된다. 유닛의 소거중 플래그가 클리어되었다면, 유닛은 기록되어진다. 유닛의 소거중 플래그가 클리어되지 않고 설정되어 있다면, 유닛이 소거되고, 유닛의 소거중 플래그가 클리어된 후 유닛에 기록이 개시된다.
소거중 플래그를 설정 및 클리어하는 것은 기록되어져야 할 유닛의 소거중 플래그가 클리어되었다는 것을 검사하는 것과 함께 하드웨어, 펌웨어, 또는 소프트 웨어에 의해 이루어질 수 있다. 기록되어져야 할 유닛의 소거중 플래그가 클리어되지 않고 설정되어 있다면, 이후의 유닛의 소거는 하드웨어, 펌웨어, 또는 소프트웨어 명령을 발행하는 것을 포함하는 단계에 의해 이루어질 것이다.
본 발명의 제2실시예에서, 플래시 메모리의 주소지정가능한 영역으로부터 분리된 한 세트의 비휘발성 플래그 레지스터가 제공된다. 제공되는 플래그 레지스터의 수는 적어도 하나 이상이고, 전형적으로는 한번에 소거될 수 있는 최대 유닛의 수이다. 플래그 레지스터와 함께 대응하는 비휘발성 유닛 넘버 레지스터가 제공되는데, 이것 또한 플래시 메모리의 주소지정가능한 영역으로부터 분리되어 있다. 유닛을 소거하기 전에, 유닛의 유닛 넘버가 유닛 넘버 레지스터의 하나에 저장되고, 소거중 플래그가 대응하는 플래그 레지스터에 설정된다. 소거중 플래그의 설정, 저장 및 클리어는 하드웨어, 펌웨어, 또는 소프트웨어에 의해 이루어질 수 있다.
이어서, 플래시 메모리가 파워-업되면, 소거중 플래그중의 하나가 여전히 설정되어 있다면, 대응 유닛은 소거된다. 플래시 메모리를 "파워-업"하는 것은 여기서 플래시 메모리에 전력이 공급된 때부터 플래시 메모리가 판독 및/또는 기록하기 위해 처음으로 액세스될 때 까지의 전 시간 간격을 말한다. 파워-업에서 그 소거중 플래그가 여전히 설정된 유닛을 소거하는 것은 하드웨어, 펌웨어, 또는 소프트웨어에 의해 이루어질 수 있다.
본 발명의 제3실시예에서, 소거될 유닛이 아닌 유닛의 주소지정가능한 영역이 소거중 레지스터로 사용된다. 소거될 각각의 유닛에 대하여, 2개의 다른 주소지정가능한 영역이 또한 제공된다: 유닛의 유닛넘버를 저장하는 영역과 소거완료 플래그를 저장하는 영역. 바람직하게, 소거중 플래그의 주소지정가능한 영역 및 대응하는 소거완료 플래그의 주소지정가능한 영역은 별개의 페이지이다. 유닛을 소거하기 전에, 유닛의 유닛넘버가 그 목적을 위해 제공된 주소지정가능한 영역의 하나에 저장되고, 소거중 플래그가 대응하는 소거중 레지스터에 설정된다. 부가적으로, 소거완료 플래그가 클리어된다. 소거되기로 되어있는 유닛이 성공적으로 소거된 후에 대응하는 소거완료 플래그가 대응하는 주소지정가능한 영역에 설정된다.
이어서, 플래시 메모리가 파워-업될 때, 설정된 소거중 플래그중의 하나가 대응하는 설정된 소거완료 플래그(즉, 대응하는 소거완료 플래그가 클리어됨)가 없다면, 대응하는 유닛은 소거된다. 제2실시예에서처럼, 플래시 메모리를 "파워-업"하는 것은 여기서 플래시 메모리에 전력이 공급된 때부터 플래시 메모리가 판독 및/또는 기록하기 위해 처음으로 액세스될 때 까지의 전 시간 간격을 말한다.
본 발명의 제4실시예에서, 하나이상의 유닛이 소거되고 있다는 지시가 전력손실을 검출할 때 소거동안 제공된다. 플래시 메모리는 한 번에 소거될 수 있는 최대 유닛 수와 동일한 수의 비휘발성 플래그 레지스터 및 대응하는 비휘발성 유닛 넘버 레지스터가 제공된다. 바람직하게, 이 레지스터는 주소지정가능한 영역으로부터 분리되어 있다. 플래시 메모리는 전력손실을 검출하는 매카니즘이 또한 제공된다. 전력손실이 검출되면, 소거되고 있는 각각의 유닛에 대하여, 유닛의 유닛 넘버가 유닛 넘버 레지스터의 하나에 저장되고, 대응하는 소거중 플래그가 대응하는 플래그 레지스터에 세트된다. 소거중 플래그를 설정하고 유닛 넘버를 저장하는 것은 하드웨어나 펌웨어에 의해 이루어질 수 있다.
이어서, 플래시 메모리가 파워-업되면, 그 유닛 넘버가 대응하는 세트된 소거중 플래그를 가지는 유닛 넘버에 저장된 모든 유닛이 소거된다. 제2 및 제3실시예에서와 같이, 플래시 메모리를 "파워-업"하는 것은 여기서 플래시 메모리에 전력이 공급된 때부터 플래시 메모리가 판독 및/또는 기록하기 위해 처음으로 액세스될 때 까지의 전 시간 간격을 말한다. 파워-업 동안 소거는 하드웨어, 펌웨어, 또는 소프트웨어 명려의 발행으로 이루어질 수 있다. 전력손실이 검출되었을 때, 소거되고 있는 유닛이 없다면, 모든 소거중 플래그가 클리어된다.
본 발명의 플래시 메모리 디바이스는 본 발명의 방법의 단계를 실행할 수 있는 매카니즘을 포함하도록 수정된 종래의 플래시 메모리 디바이스이다. 제1, 2, 4의 실시예의 경우, 이러한 방법 단계는 하드웨어, 펌웨어, 또는 이들의 조합으로 구현된다. 제1 및 2의 실시예의 경우에서, 매카니즘이 방법 단계가 외부의 디바이스의 소프트웨어나 펌웨어에 의해 대안적으로 수행되도록 해준다. 제4의 실시예의 경우는 파워-업과 관련된 방법 단계가 소프트웨어에 의해 대안적으로 수행되도록 해준다. 제3의 실시예는 소프트웨어로 구현된다.
본 발명의 플래시 메모리 디바이스의 제4실시예는 전력손실을 검출하는 검출 매카니즘 및 전력손실시에 소거되고 있는 유닛을 기록하는 기록 매카니즘을 포함한다. 바람직하게, 기록 매카니즘은 2세트의 비휘발성 레지스터를 포함한다: 전력이 손실되었을 때 소거되고 있는 유닛의 유닛넘버를 저장하는 유닛 넘버 레지스터, 및 대응하는 소거중 플래그를 저장하는 대응하는 플래그 레지스터. 바람직하게, 이들 레지스터는 유닛의 주소지정가능한 영역으로부터 분리되어 있다.
본 발명의 "플래그 레지스터"는 일반적으로 1비트 길이다. 예를 들어, 플래그의 "설정"은 대응하는 레지스터의 비트를 이진"1"로 설정할 수 있고, 플래그의 클리어링은 대응하는 레지스터의 비트를 이진"0'으로 설정할 수 있다. 그럼에도 불구하고, 본 발명의 관점은 멀티-비트 구현을 포함하여 플래그 레지스터의 모든 등가 구현물을 포함한다.
본 발명의 동기가 PPP=1의 플래시 메모리의 출현일지라도, 본 발명의 관점은 PPP=1인 메모리와 PPP>1인 메모리 모두를 포함한다.
본 발명은 소거되기로 예정된 플래시 메모리 유닛이 실제로 소거되는 것을 보장하도록 플래시 메모리 디바이스를 관리하는 방법이다. 상세하게는, 본 발명은 1의 PPP값을 가지는 플래시 메모리의 명목상으로 소거된 유닛이 실제로 소거되었는지를 보장하는데 사용되어 질 수 있다.
본 발명에 따른 플래시 메모리 디바이스의 원리 및 작동은 도면과 후술하는 설명을 참조하여 더욱 명백하게 이해될 것이다.
도면을 참조하여 보면, 도1은 종래 기술의 플래시 메모리 디바이스(10)를 예시한다. 디바이스(10)는 제어 모듈(12)에 의해 제어되는 플래시 메모리(14)를 포함한다. 플래시 메모리(14)는 유닛(u1 에서 un까지)을 포함한다(n>1). 도시된 바와 같이, 플래시 메모리의 각각의 유닛은 하나이상의 페이지를 포함한다. 이 디바이스(10)의 경우, 각각의 유닛은 2개의 페이지를 포함한다. 유닛(u1)의 2개의 페이지는 도1에서 페이지(p1, p2)로 도시된다. 역시 도시된 바와 같이, 플래시 메모리의 각각의 페이지는 복수의 주소지정가능한 영역을 포함한다. 도1에서, 페이지(p2)는 m개의 주소지정가능한 영역(a1에서 am까지)을 포함하고 있는 것으로 도시된다. 제어 모듈(12)은 호스트 디바이스(도시하지 않음)의 제어에 의해, 플래시 메모리(14)의 선택된 유닛(u)을 소거하고, 플래시 메모리(14)의 선택된 페이지(p)에 기록하고, 플래시 메모리(14)의 선택된 주소지정가능한 영역의 내용을 판독한다.
제어 모듈(12)은 개략적으로, 플래시 메모리(14)를 제어하는 종래기술에서 사용된 모든 방법을 대표하는 일반적인 제어 모듈이다. 전형적으로, 디바이스(10)는 플래시 메모리(14)에 의해 수행되어야 할 판독, 기록, 또는 소거 작동과 같은 작동을 설정하는 시퀀서 및 상기 작동이 적용되는 플래시 메모리(14)부의 주소와 함께 제조된다. 시퀀서는 기록 및 소거 작동의 성공을 검증하고 지시한다. 일반적으로, 디바이스(10)는 시퀀서에 의해 행해지는 것보다 높은 레벨에서 플래시 메모리(14)에 의해 수행되는 작동, 예를 들어, 에러 검출 코드를 사용하여 데이타 판독에서의 에러를 검사하는 목적의 작동을 관리하는 제어기도 역시 제공된다. 플래시 메모리(14)와 시퀀서는 동일 다이상에 제조된다. 제어기는 플래시 메모리(14) 및 시퀀서와 동일 다이상에 제조되거나 별개의 다이상에 제조될 수 있다. 또한, 제어기는 사용자에 의해 프로그램가능하지 않기 때문에, 제어기는 호스트 디바이스가 직접 시퀀서에 명령을 발행할 수 있도록 구성되어 질 수 있다. 대안적으로, 디바이스(10)가 제어기 없이 구성되어진다면, 호스트 디바이스가 그렇지 않다면 제어기에 의해 발행될 모든 명령을 시퀀스에 발행할 것이다. 단지 플래시 메모리(14) 및 시퀀서에 수정을 요하는 본 발명의 구현은 "하드웨어" 구현으로 취급될 것이다. 플래시 메모리(14) 또는 시퀀서에 수정을 요하든 요하지 않든, 제어기에 수정을 요하는 본 발명의 구현은 "펌웨어"구현으로 취급된다. 단지 호스트 디바이스에 의해 실행되는 소프트웨어의 수정을 요하는 본 발명의 구현은 "소프트웨어" 구현으로 취급된다. 유사하게, 시퀀서에 의해 자율적으로 개시되는 활동은 하드웨어에 의해 이루어지는 것으로 취급된다; 제어기에 의해 개시되는 활동은 펌웨어에 의해 이루어지는 것으로 취급된다; 소프트웨어 제어하에 호스트 디바이스에 의해 개시되는 활동은 소프트웨어에 의해 이루어지는 것으로 취급된다. 결과적으로, 여기에서 사용된 "제어 모듈"이라는 용어는, 시퀀서, 제어기, 또는 시퀀서나 제어기에 명령을 발행하는 호스트 디바이스 소프트웨어를 언급하는 것이다.
도2는 본 발명의 제1실시예에 따른 플래시 메모리 디바이스(20)를 도시한다. 플래시 메모리 디바이스(20)는 유닛(u)마다 하나의 비휘발성 플래그 레지스터(22)를 부가한 플래시 메모리 디바이스(10)와 동일하다. 플래그 레지스터(22)는 주소지정가능한 영역(a)으로부터 분리되어 있다. 그럼에도 불구하고, 플래그 레지스터(22)는 바람직하게는 주소지정가능한 영역(a)과 물리적으로 유사하고, 전형적으로 단지 예를 들어 특별한 주소 또는 특별한 디바이스 모드를 통하는 것과 같은 자신만의 독특한 액세스 매커니즘을 가지는 것에 의해 주소지정가능한 영역(a)과 다르다. 특별한 주소를 가진 주소지정가능한 영역으로서 플래그 레지스터(22)의 구현예는 "일반적인"소프트웨어 명령에 액세스가능한 주소 공간이 플래그 레지스터(22)의 주소를 포함하는 것이 아니라, "특별한" 소프트웨어 명령에 액세스 가능한 주소 공간이 플래그 레지스터(22)의 주소를 포함하는 플래시 메모리 디바이스(20)이다. 각각의 플래시 레지스터(22)는 1비트 길이의 "소거중 플래그"를 저장한다.
플래시 메모리 디바이스(20)의 소거 작동의 플로우챠트인 도3을 참조한다. 일반적으로, 모든 "소거중 플래그"는 클리어되고, 즉 이진 "0"과 동일하게 된다. 제어모듈(12)이 특정 유닛(u)을 소거하기 전에, 제어모듈(12)은 상기 유닛(u)의 플래그 레지스터(22)내에 이진"1"을 저장함으로써 대응하는 소거중 플래그를 세트한다(블록100). 상기 유닛(u)이 소거되고 소거가 검증된 후(블록102), 제어 모듈(12)은 상기 유닛(u)의 플래그 레지스터(22)내에 이진 "0"을 저장함으로써 대응 소거중 플래그를 클리어한다(블록104).
플래시 메모리 디바이스(20)의 기록 작동의 플로우챠트인 도4를 참조한다. 전형적으로, 이 기록 작동은 기록에 사용되어 질 수 있는 프리유닛의 풀로부터 유닛을 할당한 후에, 유닛의 페이지가 기록되는 최초의 때에만 도시된 방법으로 실행된다; 그러나, 어떤 기록 작동이 도시된 방법으로 실행되어 질 수 있다. 제어모듈(12)이 페이지(p)에 기록하기 전에, 제어모듈(12)은 상기 페이지(P)를 포함하는 유닛(u)의 플래그 레지스터(22)내에 소거중 플래그를 검사한다(블록 106). 소거중 플래그가 클리어되어 있다면(블록 108), 기록이 일반적으로 진행된다(블록 114). 유닛(u)의 가장 최근 소거가 전력 손실에 의해 인터럽터되었다는 것을 지시하는, 소거중 플래그가 설정되어 있다면(블록 108), 제어모듈(12)는 유닛(u)을 소거하고 소거를 검증한다(블록 110). 제어모듈(12)은 그후 소거중 플래그를 클리어한다(블록 112). 그 이후 제어모듈(12)은 상기 페이지(p)에 기록한다(블록 114).
플래시 메모리 디바이스가 전력손실 이벤트시에 불완전하게 소거되는 것을 방지하는 이 방법은 한 번에 하나의 유닛(u)을 소거하는 플래시 메모리 디바이스 및 한 번에 여러 유닛(u)을 소거하는 플래시 메모리 디바이스에 적용될 수 있다. 소거중 플래그를 설정, 클리어 및 검사하는 것은 플래시 디바이스 하드웨어, 플래시 제어기 펌웨어, 플래시 관리 소프트웨어, 또는 이들의 조합에 의해 행해질 수 있다.
도5는 본 발명의 제2실시예에 따른 플래시 메모리 디바이스(30)를 도시한다. 플래시 메모리 디바이스(30)는 여러 개의 비휘발성 플래그 레지스터(32) 및 대응하는 여러개의 비휘발성 유닛 넘버 레지스터(34)를 부가한 플래시 메모리 디바이스(10)와 동일하다. 플래그 레지스터(32) 및 유닛 넘버 레지스터(34)는 주소지정가능한 영역(a)으로부터 분리되어 있다. 플래그 레지스터(32) 및 유닛 넘버 레지스터(34)는 플래시 디바이스(30)가 동시에 소거할 수 있는 유닛(u)의 최대 수와 그 수에서 동일하다. 도5에 도시된 특정 실시예에서, 플래시 디바이스(30)는 플래시 메모리 디바이스(30)가 3개의 플래그 레지스터(32) 및 3개의 유닛 넘버 레지스터(34)를 포함하기 때문에 동시에 3개의 유닛(u)까지 소거할 수 있다. 각각의 플래그 레지스터(32)는 1비트 길이의 소거중 플래그를 저장한다. 각각의 유닛 넘버 레지스터(34)는 어떤 유효 유닛 넘버를 저장하도록 충분히 길다. 각각의 플래그 레지스터(32)는 특정 유닛 넘버 레지스터(34)와 연관되어 있다.
플래시 메모리 디바이스(30)의 소거 작동의 플로우챠트인 도6을 참조한다. 일반적으로, 모든 소거중 플래그가 클리어, 즉 이진 "0"과 동일하게 된다. 상술한 바와 같이, 제어모듈(12)은 동시에 하나, 둘, 또는 세개의 유닛(u)을 소거하도록 동작한다. 제어모듈(12)이 하나에서 세개의 유닛(u)의 그룹을 소거하기 전에, 제어모듈(12)은 동일 수의 플래그 레지스터(32)의 각각에 이진 "1"을 저장함으로써 동일 수의 소거중 플래그를 설정한다(블록 128). 제어모듈(12)은 또한 소거되어야 할 유닛 또는 유닛들의 유닛 넘버를 그들 플래그 레지스터(32)에 연관된 유닛 넘버 레지스터(34)에 기록한다(블록 130). 유닛 또는 유닛들(u)이 소거되고, 소거가 검증된 후(블록 132), 제어 모듈(12)은 대응하는 플래그 레지스터(32)내에 이진 "0"을 저장함으로써 대응하는 소거중 플래그를 클리어한다.
플래시 메모리 디바이스(30)의 파워-업 과정의 부분 플로우챠트인 도7을 참조한다. 플래시 메모리 디바이스(30)가 파워-업되면, 제어모듈(12)은 모든 3개의 소거중 플래그를 검사한다(블록 136). 이 소거중 플래그중 어느 것이 세트되어 있다면(블록 138), 그것은 그 유닛 넘버가 대응 유닛 넘버 레지스터(34)에 저장되어 있는 유닛(u)의 소거가 전력 손실에 의해 인터럽터되었다는 것을 지시한다. 그 소 거가 전력손실에 의해 인터럽터된 유닛의 각각에 대해, 제어모듈(12)은 유닛을 소거하고 그 소거를 검증한다(블록 140). 제어모듈(12)은 그 후 대응하는 소거중 플래그를 클리어한다(블록 142). 모든 소거중 플래그가 검사된 후(블록 144), 플래시 메모리 디바이스(30)의 일반 동작이 개시된다(블록 146).
본 발명의 실시예에서, 페이지(p)의 하나에 기록하기 전에 특별한 사전조치가 취해질 필요는 없다. 본 발명의 제1실시예에서, 소거중 플래그를 설정, 클리어, 및 검사하는 것은 플래시 디바이스 하드웨어, 제어기 펌웨어, 플래시 관리 소프트웨어, 또는 이들의 조합에 의해 행해질 수 있다.
본 발명의 제3실시예가 도8에 도시된다. 이 실시예는 전적으로 소프트웨어에서 작동하고, 따라서 제어기 모듈(12)이 후술하는 바와 같이 플래시 메모리(14)를 관리하도록 수정되어 진다면, 플래시 메모리 디바이스(10)와 같은 종래의 플래시 메모리 디바이스의 사용에 적당하다. 결과적으로, 도8의 플래시 메모리 디바이스는 구조적으로 플래시 메모리 디바이스(10)와 동일하다.
본 발명의 제3실시예에 의하면, 각각의 페이지(p)의 3개의 주소지정가능한 영역(a)은 플래시 메모리(14)를 관리하는 데 할당된다: 소거중 플래그를 저장하는데 사용하는 주소지정가능한 영역(42), 유닛 넘버를 저장하는데 사용되는 주소지정가능한 영역(44), 및 소거완료 플래그를 저장하는데 사용되는 주소지정가능한 영역(46). 명확하게 하기 위해 유닛(u1)이 소거되어야 할 것이라고 가정하여 보자. 플래시 메모리 디바이스(40)의 소거 작동의 플로우챠트인 도9를 참조한다. 제어모듈(12)은 유닛(u1)의 소거를 관리하기 위해 기록할 수 있는 다른 유닛(uk)의 2개의 페이지(p1,p2)를 선택한다(블록 148). 유닛(u1)을 소거하기 전에, 제어모듈(12)은 유닛(uk)의 페이지(p1)의 주소지정가능한 영역(42)내에 소거중 플래그를 설정하고(블록 150) 유닛(uk)의 페이지(p1)의 주소지정가능한 영역(44)에 유닛(u1)의 유닛 넘버를 또한 기록한다(블록 152). 블록(150, 152)의 단계는 하나의 기록 작동으로 카운트되도록 그리고 PPP제한을 위반하지 않도록 바람직하게 함께 행해진다. 유닛(u1)의 소거가 완료되고 검증된 후(블록 154), 제어 모듈(12)은 유닛(uk)의 페이지(p2)의 주소지정가능한 영역(46)에 소거완료 플래그를 설정한다. 소거중 플래그를 위해 사용되는 주소지정가능한 영역(42)과 소거완료 플래그를 위해 사용되는 주소지정가능한 영역(46)은 1의 PPP값을 가지는 플래시 메모리(14)를 허용할 수 있도록 다른 페이지(p)인 것을 알아야 한다. 플래시 메모리(14)가 1보다 큰 PPP값을 가진다면, 소거중 플래그를 위해 사용되는 주소지정가능한 영역(42)과 소거완료 플래그를 위해 사용되는 주소지정가능한 영역(46)은 동일 페이지(p)내에 있을 수 있다. 또한 PPP>1인 경우에도, 유닛(uk)의 주소지정가능한 영역(42, 46)은 유닛(uk)이 소거된 마지막 이후로 기록되지 말아야 한다는 것를 주의해야 한다. 이것은 소거완료 플래그가 유닛(u1)의 소거전에 클리어(즉, 설정되지 않음)된다는 것을 보증한다.
명백히, 본 발명에 따르면 주소지정가능한 영역(42, 44, 46)이 예시된 바와 같이 페이지(p)마다의 3개의 주소지정가능한 영역(a), 또는 페이지(p)마다의 3개의 주소지정가능한 영역(a)의 복수의 소거를 관리하는데 할당될 만큼 충분히 길다면 하나 이상의 유닛(u)이 동시에 소거될 수 있다.
플래시 메모리 디바이스(40)의 파워-업 과정의 부분 플로우챠트인 도10을 참조한다. 플래시 메모리 디바이스(40)가 파워-업 되면, 제어모듈(12)은 각각의 설정된 소거중 플래그(블록 160)가 대응하는 설정된 소거완료 플래그(블록162)와 일치하는 것을 명확히 하기 위해, 가장 최근 설정된 소거에 대해 잠재적으로 할당되었던 모든 주소지정가능한 영역(42, 46)을 검사한다. 대응하는 설정된 소거완료 플래그와 일치하지 않는 각각의 소거중 플래그에 대해서, 제어모듈(12)은 그 유닛 넘버가 대응하는 주소지정가능한 영역(44)에 저장된 유닛(u)을 소거하고 그 소거를 검증한다(블록 164). 제어모듈(12)은 그 후 대응 소거완료 플래그를 설정한다(블록 166). 모든 소거중 플래그가 검사된 후(블록 168), 플래시 메모리 디바이스(40)의 일반 작동이 개시된다(블록 170)
본 발명의 제2실시예에서, 페이지(p)의 하나에 기록하기 전에 특별한 사전조치가 취해질 필요가 없다.
상술한 바와 같이, 처음의 2개의 실시예는 유닛(u)를 소거하기 전에 소거중 플래그를 설정하고, 성공적으로 소거가 완료된 후 소거중 플래그를 클리어한다; 반면 3번째 실시예는 유닛(u)를 소거하기 전에 소거중 플래그를 설정하고, 성공적으로 소거가 완료된 후 대응하는 소거완료 플래그를 설정함으로써 소거중 플래그를 밸런스한다. 대안적으로 처음의 2개의 실시예도 그들의 소거중 플래그를 클리어하는 대신 성공적으로 소거가 완료된 후 대응하는 소거완료 플래그로 그들 소거중 플래그를 밸런스할 수도 있다.
처음의 3개의 실시예는 어떤 유닛(u)을 소거하기 전에, 소거중 플래그 및 유 닛 넘버와 같은 정보를 저장함으로써 작동한다. 본 발명의 제4실시예에 따르면, 그런 정보가 실질적으로 필요할 때: 소거중 전력손실이 검출되었을 때 저장된다.
도11은 본 발명의 제4실시예에 따른 플래시 메모리 디바이스(50)를 도시한다. 플래시 메모리 디바이스(50)는 전력손실을 검출하기 위한 전력 센서(56) 및 그 소거가 전력손실에 의해 인터럽터될 수 있는 어떤 유닛(u)에 대한 정보를 저장하기 위해 충분한 전력을 보존하기 위해 커패시터 어레이(도시하지 않음)를 부가한, 플래시 메모리 디바이스(30)와 동일하다. 외부 전력원으로부터 전력손실의 이벤트시 점진적 파워-다운을 가능하게 하는 외부 커패시터 어레이와 외부 전력원으로부터 전력손실을 검출하는 전력 센서를 사용하는 종래 시스템의 예로서 여기에서 참조되는 포트만 등의 WO 01/22205를 참조하라.
플래시 메모리 디바이스의 파워-다운 과정의 부분 플로우챠트인 도12를 참조한다. 제어모듈(12)이 소거(블록 174)동안 전력손실을 검출하면(블록 172), 동시에 소거되는 각각의 유닛(u)에 대해, 제어모듈(12)은 대응하는 플래그 레지스터(32)에 소거중 플래그를 설정하고(블록 178), 대응하는 유닛 넘버 레지스터(34)에 유닛의 유닛 넘버를 기록한다(블록 180). 플래시 메모리 디바이스(50)이 정상적으로 파워 다운되었을 때, 제어모듈(12)은 정상적인 셧다운이 예상치 않은 전력손실과 혼동되지 않도록 하기 위해 모든 소거중 플래그를 클리어한다(블록 176). 소거동안 전력손실의 검출는 여기서 소거에 "동기"하는 것으로 정의된다. 소거가 수행되지 않는 동안 전력 손실의 검출, 예를 들어 정상적인 셧다운동안의 전력손실의 검출는 여기서 소거에 "비동기"로 정의된다.
도7은 플래시 메모리 디바이스(30)의 파워-업 과정을 예시함과 동시에 플래시 메모리 디바이스(50)의 파워-업 과정을 또한 예시한다. 플래시 메모리 디바이스(50)가 파워-업되면, 제어 모듈(12)은 모든 3개의 소거중 플래그를 검사한다(블록 136). 어떤 소거중 플래그가 설정되어 있다면(블록 138), 그것은 대응하는 유닛 넘버 레지스터(34)에 그 유닛 넘버가 저장되어 있는 유닛(u)의 소거가 전력손실에 의해 인터럽터되었다는 것을 지시한다. 그 소거가 전력손실에 의해 인터럽터된 각각의 유닛에 대해, 제어모듈(12)은 유닛을 소거하고 소거를 검증한다(블록 140). 제어유닛(12)은 그 후 대응하는 소거중 플래그를 클리어한다(블록 142). 모든 소거중 플래그가 검사된 후(블록 144), 플래시 메모리 디바이스(50)의 일반적인 동작이 개시된다(블록 146).
본 발명의 실시예에서, 제 2 및 제3실시예에서처럼, 페이지(p)의 하나에 기록하기 전에 특별한 사전조치가 취해질 필요가 없다. 본 발명의 제1 및 제2실시예에서처럼, 파워-업 동안 소거중 플래그를 검사 및 클리어하는 것은 플래시 디바이스 하드웨어, 제어기 펌웨어, 플래시 관리 소프트웨어, 또는 이들의 조합으로 행해질 수 있다. 그러나, 전력손실을 검출함에 따라 소거중 플래그를 설정하고 클리어하는 것은 단지 플래시 디바이스 하드웨어, 제어기 펌웨어, 또는 이들의 조합으로 행해지고, 전력손실의 경우에 있어서 빠른 응답의 필요성 때문에 소프트웨어에 의해 행해지지 않는다.
본 발명이 특정 실시예로 기술되어 있지만, 많은 변형, 수정 및 응용이 이루어질 수 있다.
본 발명은 소거되기로 예정된 플래시 메모리 유닛이 실제로 소거되는 것을 보장하도록 플래시 메모리 디바이스를 관리하는 방법이다. 상세하게는, 본 발명은 1의 PPP값을 가지는 플래시 메모리의 명목상으로 소거된 유닛이 실제로 소거되었는지를 보장하는데 사용되어 질 수 있다.

Claims (83)

  1. 각 유닛이 대응하는 유닛 넘버를 갖고, 각 유닛이 대응하는 복수의 주소지정가능한 영역을 구비하는, 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법으로서, 상기 방법은,
    미리 정해진 수의 플래그 레지스터 및 미리 정해진 수의 유닛 넘버 레지스터를 제공하는 단계;
    상기 복수의 유닛 중 임의의 유닛을 소거하기 전에, 동시에 소거될 각 유닛에 대하여,
    플래그 레지스터 중 대응하는 플래그 레지스터 내에 소거중 플래그를 설정하는 단계로서, 각 소거중 플래그는 단지 하나의 비트를 갖는, 단계; 및
    유닛 넘버 레지스터 중 대응하는 유닛 넘버 레지스터 내에 대응 유닛 넘버를 기록하는 단계;를 포함하고,
    상기 미리 정해진 수는 동시에 소거될 수 있는 전체 유닛 수와 동일하고, 상기 미리 정해진 수는 전체 유닛 수 미만이고, 상기 플래그 레지스터 및 상기 유닛 넘버 레지스터는 유닛으로부터 분리된 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  2. 제1항에 있어서, 상기 설정은 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  3. 제1항에 있어서, 상기 설정은 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  4. 제1항에 있어서, 상기 설정은 소프트웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  5. 삭제
  6. 제1항에 있어서, 소거된 각 유닛에 대하여, 각각의 플래그 레지스터 내에 각각의 소거중 플래그를 클리어하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  7. 제6항에 있어서, 상기 클리어하는 것은 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  8. 제6항에 있어서, 상기 클리어하는 것은 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  9. 제6항에 있어서, 상기 클리어하는 것은 소프트웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  10. 제6항에 있어서,
    상기 복수의 유닛 중 제1 유닛에 기록하기 전에, 상기 제1 유닛의 유닛 넘버를 저장하는 유닛 넘버 레지스터에 대응하는 각각의 소거중 플래그가 클리어되었는지를 판정하는 단계; 및
    상기 판정하는 단계에 이어서,
    각각의 소거중 플래그가 클리어되었을 때 상기 제1 유닛에 기록하는 단계;
    각각의 소거중 플래그가 클리어되지 않았을 때:
    상기 제1 유닛을 소거하는 단계; 및
    각각의 소거중 플래그를 클리어하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  11. 제10항에 있어서, 상기 판정하는 단계 및 상기 소거하는 단계는 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  12. 제10항에 있어서, 상기 판정하는 단계 및 상기 소거하는 단계는 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  13. 제10항에 있어서, 상기 판정하는 단계는 소프트웨어에 의해 이루어지고, 후속하는 상기 소거하는 단계는 소프트웨어 소거 명령을 발행함으로써 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  14. 제1항에 있어서, 상기 플래그 레지스터는 비휘발성인 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  15. 각 유닛이 각각의 유닛 넘버를 갖고, 각 유닛이 복수의 주소지정가능한 영역을 포함하는, 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법으로서, 상기 방법은,
    복수의 유닛의 주소지정가능한 영역으로부터 분리된 하나 이상의 플래그 레지스터를 제공하는 단계로서, 전체 플래그 레지스터 수는 전체 유닛 수 미만인, 단계;
    각 플래그 레지스터에 대하여, 복수의 유닛의 주소지정가능한 영역으로부터 분리된 대응하는 유닛 넘버 레지스터를 제공하는 단계;
    복수의 유닛 중 적어도 하나를 소거하기 전에, 소거될 각 유닛에 대하여:
    대응하는 플래그 레지스터 내에 각각의 소거중 플래그를 설정하는 단계; 및
    대응하는 플래그 레지스터에 대응하는 유닛 넘버 레지스터 내에 유닛의 각각의 유닛 넘버를 저장하는 단계; 및
    유닛을 소거하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  16. 제15항에 있어서, 상기 설정 및 상기 저장 단계는 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  17. 제15항에 있어서, 상기 설정 및 상기 저장 단계는 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  18. 제15항에 있어서, 상기 설정 및 상기 저장 단계는 소프트웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  19. 제15항에 있어서,
    제1 유닛을 소거하는 단계에 이어서, 상기 제1 유닛이 소거되었다는 지시를 제공하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  20. 제19항에 있어서, 상기 제1 유닛이 소거되었다는 지시는 상기 제1 유닛의 소거중 플래그를 클리어함으로써 제공되는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  21. 제20항에 있어서, 상기 클리어하는 것은 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  22. 제20항에 있어서, 상기 클리어하는 것은 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  23. 제20항에 있어서, 상기 클리어하는 것은 소프트웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  24. 제20항에 있어서
    플래시 메모리를 파워-업할 때, 제1 소거중 플래그가 설정되어 있는 경우, 각각의 유닛 넘버가 제1 소거중 플래그에 대응하는 유닛 넘버 레지스터에 저장되어 있는 유닛을 소거하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  25. 제24항에 있어서, 상기 소거는 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  26. 제24항에 있어서, 상기 소거는 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  27. 제24항에 있어서, 상기 소거는 소프트웨어 소거 명령을 발행함으로써 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  28. 제15항에 있어서, 적어도 하나의 플래그 레지스터 및 적어도 하나의 유닛 넘버 레지스터는 비휘발성인 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  29. 각 유닛이 각각의 유닛 넘버를 갖고, 각 유닛이 적어도 하나의 페이지를 포함하며, 각 페이지가 복수의 주소지정가능한 영역을 포함하는, 복수의 유닛을 구비하는 플래시 메모리를 관리하는 방법으로서, 상기 방법은,
    동시에 소거될 수 있는 유닛의 미리 정해진 수까지 소거될 각 유닛에 대하여,
    소거 전에, 플래시 메모리 내에 대응하는 소거중 영역을 할당하는 단계;
    소거 전에, 플래시 메모리 내에 상기 대응하는 소거중 영역으로부터 분리된 각 대응하는 소거완료 영역을 할당하는 단계;
    소거 전에, 상기 대응하는 소거중 영역 내에 대응하는 소거중 플래그를 설정하는 단계;
    유닛을 소거하는 단계; 및
    상기 소거하는 단계에 이어서, 대응하는 소거완료 영역 내에 대응하는 소거완료 플래그를 설정하는 단계;를 포함하고,
    상기 미리 정해진 수는 전체 유닛 수 미만인 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  30. 제29항에 있어서, 각 소거중 영역 및 각 소거완료 영역은 플래시 메모리 내에 주소지정가능한 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  31. 제30항에 있어서, 소거될 각 유닛에 대하여, 대응하는 소거중 영역은 대응하는 소거 관리 유닛의 제1 페이지에 있고, 대응하는 소거완료 영역은 대응하는 소거 관리 유닛의 제2 페이지에 있는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  32. 제29항에 있어서,
    소거될 각 유닛에 대하여, 상기 소거하는 단계 전에, 대응하는 소거완료 플래그를 클리어하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  33. 제29항에 있어서,
    플래시 메모리를 파워-업할 때, 제1 소거중 플래그가 설정되고 대응하는 소거완료 플래그가 클리어된 후 제1 유닛을 소거하는 단계를 더 포함하고,
    상기 제1 소거중 플래그는 제1 유닛에 대응하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  34. 제29항에 있어서,
    각 소거중 영역에 대하여, 대응하는 유닛 넘버 저장 영역을 할당하는 단계; 및
    복수의 유닛 중 적어도 하나를 소거하기 전에, 소거될 각 유닛에 대하여, 대응하는 유닛 넘버 저장 영역 내에 대응하는 유닛 넘버를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  35. 각 유닛이 대응하는 유닛 넘버를 갖고, 각 유닛이 대응하는 복수의 주소지정가능한 영역을 포함하는, 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법으로서, 상기 방법은:
    제1 소거 동작 중에 전력 손실이 발생할 때, 동시에 소거되는 각 유닛에 대하여, 대응하는 소거중 영역 내에 소거중 플래그를 설정하는 단계 및 대응하는 유닛 넘버 저장 영역 내에 대응하는 유닛 넘버를 저장하는 단계; 및
    전력 손실에 뒤따르는 파워-업 후에, 대응하는 소거중 플래그가 설정되는 유닛의 각각을 소거하기 위해 제2 소거 동작을 시작하는 단계;를 포함하고,
    상기 제1 소거 동작 동안 제1 수의 유닛은 동시에 소거되고, 상기 제1 수는 전체 유닛 수 미만인 미리 정해진 수를 초과하지 않는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  36. 삭제
  37. 제35항에 있어서,
    각 소거중 영역에 대하여, 플래시 메모리 내에 상기 할당된 소거중 영역으로부터 분리된 대응하는 소거완료 영역을 할당하는 단계; 및
    제1 소거중 플래그가 설정되고, 대응하는 소거완료 플래그가 클리어된 경우, 상기 제1 소거중 플래그에 대응하는 유닛을 소거하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  38. 제37항에 있어서,
    복수의 유닛 중 적어도 하나를 소거하기 전에, 소거될 각 유닛에 대하여 대응하는 소거완료 영역 내에 소거완료 플래그를 클리어하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 각 유닛이 각각의 유닛 넘버를 갖고, 각 유닛이 대응하는 복수의 주소지정가능한 영역을 포함하는, 복수의 유닛을 포함하는 플래시 메모리를 관리하는 방법으로서, 상기 방법은,
    플래시 메모리가 복수의 유닛 중 미리 정해진 수의 유닛까지 실질적으로 동시에 소거하기 위해 작동될 때,
    미리 정해진 수와 동일한 수의 복수의 플래그 레지스터를 제공하는 단계;
    복수의 플래그 레지스터 각각에 대하여, 대응하는 유닛 넘버 레지스터를 제공하는 단계;
    복수의 유닛 중 적어도 하나의 소거를 시작하는 단계;
    플래시 메모리에서 전력손실을 검출하는 단계; 및
    상기 소거 동안 전력손실이 발생된 경우, 동시에 소거되는 각 유닛에 대하여,
    복수의 플래그 레지스터 중 대응하는 플래그 레지스터를 유닛과 연관시키는 단계;
    대응하는 플래그 레지스터 내에 각각의 소거중 플래그를 설정하는 단계; 및
    대응하는 유닛 넘버 레지스터 내에 유닛의 각각의 유닛 넘버를 저장하는 단계;를 포함하고,
    상기 미리 정해진 수는 전체 유닛 수 미만인 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  47. 제46항에 있어서,
    상기 소거의 완료에 이어서, 전력손실이 발생된 경우, 복수의 소거중 플래그 각각을 클리어하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  48. 제46항에 있어서, 각 플래그 레지스터 및 각 유닛 넘버 레지스터는 복수의 유닛의 각각의 주소지정가능한 영역으로부터 분리된 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  49. 제46항에 있어서,
    플래시 메모리를 파워-업할 때, 설정된 각각의 소거중 플래그를 포함하는 각 플래그 레지스터에 대하여, 대응하는 유닛 넘버 레지스터 내에 저장된 유닛 넘버를 갖는 유닛을 소거하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  50. 제49항에 있어서, 상기 소거하는 단계는 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  51. 제49항에 있어서, 상기 소거하는 단계는 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  52. 제49항에 있어서, 상기 소거하는 단계는 소프트웨어 소거 명령을 발행함으로써 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  53. 제46항에 있어서, 상기 설정 및 저장하는 단계는 하드웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  54. 제46항에 있어서, 상기 설정 및 저장하는 단계는 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  55. 제46항에 있어서, 플래그 레지스터 및 유닛 넘버 레지스터는 비휘발성인 것을 특징으로 하는 플래시 메모리를 관리하는 방법.
  56. 각 유닛이 복수의 주소지정가능한 영역을 포함하는, 복수의 유닛; 및
    미리 정해진 수의 플래그 레지스터;를 포함하고,
    상기 미리 정해진 수는 전체 유닛 수 미만이고, 상기 미리 정해진 수는 동시에 소거될 수 있는 유닛의 수와 동일하며, 각 플래그 레지스터는 단지 하나의 비트를 갖는 대응하는 소거중 플래그를 저장함으로써 대응하는 유닛이 소거되도록 지정되었다는 것을 지시하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  57. 제56항에 있어서,
    플래그 레지스터 내에 소거중 플래그를 설정하고, 대응하는 유닛 넘버 레지스터 내에 복수의 유닛 중 소거될 것으로 지정된 제1 유닛의 유닛 넘버를 저장하고, 제1 유닛의 소거에 이어서 제1 유닛의 대응하는 플래그 레지스터 내에 소거중 플래그를 클리어하도록 동작하는 매카니즘;를 더 포함하는 것을 특징으로 하는 플래시 메모리 디바이스.
  58. 제57항에 있어서, 상기 매카니즘은 하드웨어내에 구현된 것을 특징으로 하는 플래시 메모리 디바이스.
  59. 제57항에 있어서, 상기 매카니즘은 펌웨어내에 구현된 것을 특징으로 하는 플래시 메모리 디바이스.
  60. 제56항에 있어서,
    외부 디바이스가, 미리 정해진 수의 유닛까지 소거되도록 지정된 각 유닛의 각각의 플래그 레지스터 내에 소거중 플래그를 설정하고, 대응하는 유닛의 소거에 이어서 각각의 플래그 레지스터 내에 소거중 플래그를 클리어할 수 있게 하도록 동작하는 매카니즘;을 더 포함하는 것을 특징으로 하는 플래시 메모리 디바이스.
  61. 제60항에 있어서, 상기 설정 및 상기 클리어는 상기 외부 디바이스의 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리 디바이스.
  62. 제60항에 있어서, 상기 설정 및 상기 클리어는 상기 외부 디바이스의 소프트웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리 디바이스.
  63. 제56항에 있어서, 상기 플래그 레지스터는 비휘발성인 것을 특징으로 하는 플래시 메모리 디바이스.
  64. 각 유닛이 각각의 유닛 넘버를 갖고, 각 유닛이 대응하는 복수의 주소지정가능한 영역을 포함하는, 복수의 유닛;
    각 유닛의 복수의 주소지정가능한 영역으로부터 분리된 미리 정해진 수의 플래그 레지스터로서, 상기 미리 정해진 수는 전체 유닛 수 미만이고, 각 플래그 레지스터는 대응하는 유닛이 소거되도록 지정되었다는 것을 지시하는 소거중 플래그를 저장하도록 동작하는, 미리 정해진 수의 플래그 레지스터; 및
    각 유닛 넘버 레지스터가 대응하는 플래그 레지스터를 갖는 미리 정해진 수의 유닛 넘버 레지스터로서, 각 유닛 넘버 레지스터는 각 유닛의 복수의 주소지정가능한 영역으로부터 분리되어 있고, 각 유닛 넘버 레지스터는 대응하는 플래그 레지스터의 관련 유닛의 각각의 유닛 넘버를 저장하도록 동작하는, 미리 정해진 수의 유닛 넘버 레지스터;를 포함하는 것을 특징으로 하는 플래시 메모리 디바이스.
  65. 제64항에 있어서,
    매카니즘을 더 포함하고, 상기 매카니즘은,
    소거될 제1 유닛과 관련된 제1 플래그 레지스터 내에 제1 소거중 플래그를 설정하고,
    제1 플래그 레지스터에 대응하는 제1 유닛 넘버 레지스터 내에 제1 유닛의 유닛 넘버를 저장하고,
    소거에 이어서, 제1 소거중 플래그를 클리어하도록 구성된 것을 특징으로 하는 플래시 메모리 디바이스.
  66. 제65항에 있어서, 상기 매카니즘은 하드웨어내에 구현되는 것을 특징으로 하는 플래시 메모리 디바이스.
  67. 제65항에 있어서, 상기 매카니즘은 펌웨어내에 구현되는 것을 특징으로 하는 플래시 메모리 디바이스.
  68. 제64항에 있어서,
    매카니즘을 더욱 포함하고, 상기 매카니즘은 외부 디바이스가,
    소거될 제1 유닛과 관련된 제1 플래그 레지스터 내에 제1 소거중 플래그를 설정하고,
    제1 플래그 레지스터에 대응하는 제1 유닛 넘버 레지스터 내에 제1 유닛의 유닛 넘버를 저장하고,
    소거에 이어서, 제1 소거중 플래그를 클리어할 수 있도록 하는 것을 특징으로 하는 플래시 메모리 디바이스.
  69. 제68항에 있어서, 상기 설정, 상기 저장 및 상기 클리어는 상기 외부 디바이스의 펌웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리 디바이스.
  70. 제68항에 있어서, 상기 설정, 상기 저장 및 상기 클리어는 상기 외부 디바이스의 소프트웨어에 의해 이루어지는 것을 특징으로 하는 플래시 메모리 디바이스.
  71. 제64항에 있어서, 하나 이상의 플래그 레지스터 및 하나 이상의 유닛 넘버 레지스터는 비휘발성인 것을 특징으로 하는 플래시 메모리 디바이스.
  72. 각 유닛이 각각의 유닛 넘버를 갖고, 각 유닛이 대응하는 복수의 주소지정가능한 영역을 포함하는, 복수의 유닛;
    전력손실을 검출하는 검출 매카니즘; 및
    상기 검출 매카니즘이 전력손실을 검출하는 경우, 동시에 소거되는 유닛 각각의 유닛 넘버를 미리 정해진 수의 유닛까지 기록하는 기록 매카니즘;을 포함하고,
    상기 미리 정해진 수는 전체 유닛 수 미만인 것을 특징으로 하는 플래시 메모리 디바이스.
  73. 제72항에 있어서, 상기 기록 매카니즘은,
    상기 미리 정해진 수와 동수인 복수의 플래그 레지스터로서, 각 플래스 레지스터는 대응하는 소거중 플래그를 저장하고, 설정시 각 소거중 플래그는 상기 검출 매카니즘이 전력 손실을 검출하는 경우 복수의 유닛 중 대응하는 유닛이 소거되고 있는 것을 지시하는, 복수의 플래그 레지스터; 및
    각 플래그 레지스터에 대하여, 대응하는 유닛의 유닛 넘버를 저장하도록 동작하는 대응하는 유닛 넘버 레지스터;를 포함하는 것을 특징으로 하는 플래시 메모리 디바이스.
  74. 제73항에 있어서, 상기 플래그 레지스터 및 상기 유닛 넘버 레지스터는 상기 주소지정가능한 영역의 각각과 구별되는 것을 특징으로 하는 플래시 메모리 디바이스.
  75. 제74항에 있어서,
    플래시 메모리 디바이스가 파워-업될 때, 기록 매커니즘에 의해 기록된 대응하는 유닛 넘버를 갖는 각 유닛을 확인하고 소거하도록 동작하는 초기화 매카니즘;을 더 포함하는 것을 특징으로 하는 플래시 메모리 디바이스.
  76. 삭제
  77. 삭제
  78. 제75항에 있어서, 상기 초기화 매카니즘은 소프트웨어에 의해 상기 확인을 가능하게 하는 것을 특징으로 하는 플래시 메모리 디바이스.
  79. 삭제
  80. 제72항에 있어서, 상기 기록 매카니즘은 펌웨어 내에 구현되는 것을 특징으로 하는 플래시 메모리 디바이스.
  81. 삭제
  82. 삭제
  83. 삭제
KR1020020073123A 2001-11-23 2002-11-22 플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는방법 KR100991718B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33205601P 2001-11-23 2001-11-23
US60/332056 2001-11-23

Publications (2)

Publication Number Publication Date
KR20030043691A KR20030043691A (ko) 2003-06-02
KR100991718B1 true KR100991718B1 (ko) 2010-11-03

Family

ID=27613196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020073123A KR100991718B1 (ko) 2001-11-23 2002-11-22 플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는방법

Country Status (3)

Country Link
US (1) US6977847B2 (ko)
JP (1) JP2003187585A (ko)
KR (1) KR100991718B1 (ko)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7113432B2 (en) 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
DE60319718D1 (de) * 2002-10-02 2008-04-24 Matsushita Electric Ind Co Ltd Steuerverfahren für eine nichtflüchtige speichereinrichtung
US7003621B2 (en) * 2003-03-25 2006-02-21 M-System Flash Disk Pioneers Ltd. Methods of sanitizing a flash-based data storage device
US6957312B1 (en) * 2003-05-07 2005-10-18 Agilent Technologies, Inc. NVRAM control protocol
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US7299314B2 (en) 2003-12-31 2007-11-20 Sandisk Corporation Flash storage system with write/erase abort detection mechanism
KR100704618B1 (ko) 2004-01-19 2007-04-10 삼성전자주식회사 플래시 메모리의 데이터 복구 장치 및 방법
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
KR100631765B1 (ko) * 2004-10-18 2006-10-09 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
ATE395703T1 (de) * 2004-10-20 2008-05-15 Actaris Sas Verfahren zum löschen eines flash-speichers und zähler mit einem flash-speicher
KR100643288B1 (ko) * 2004-11-16 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
KR100643287B1 (ko) 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7849381B2 (en) 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7212440B2 (en) 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7308525B2 (en) * 2005-01-10 2007-12-11 Sandisk Il Ltd. Method of managing a multi-bit cell flash memory with improved reliablility and performance
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US20070083697A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7783845B2 (en) * 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
US7624239B2 (en) * 2005-11-14 2009-11-24 Sandisk Corporation Methods for the management of erase operations in non-volatile memories
US7564721B2 (en) * 2006-05-25 2009-07-21 Micron Technology, Inc. Method and apparatus for improving storage performance using a background erase
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US7934055B2 (en) 2006-12-06 2011-04-26 Fusion-io, Inc Apparatus, system, and method for a shared, front-end, distributed RAID
KR100816154B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 플래시 메모리 소자의 어드레스 스케쥴링 방법
CN101281492B (zh) * 2007-04-04 2011-02-02 扬智科技股份有限公司 恢复闪存的对照表的方法
US20080320253A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
US8266391B2 (en) * 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
US8332581B2 (en) * 2007-08-13 2012-12-11 International Business Machines Corporation Stale track initialization in a storage controller
US20090049226A1 (en) * 2007-08-13 2009-02-19 Ibm Corporation Stale track initialization in a storage controller
US8473923B2 (en) * 2007-09-12 2013-06-25 Sandisk Technologies Inc. Pointers for write abort handling
US9607664B2 (en) 2007-09-27 2017-03-28 Sandisk Technologies Llc Leveraging portable system power to enhance memory management and enable application level features
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8775758B2 (en) * 2007-12-28 2014-07-08 Sandisk Technologies Inc. Memory device and method for performing a write-abort-safe firmware update
JP2010044504A (ja) * 2008-08-11 2010-02-25 Hitachi Cable Ltd フラッシュメモリを用いた装置及びそのフラッシュメモリへのデータの書き込み方法
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
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
JP4712102B2 (ja) * 2009-05-26 2011-06-29 富士通株式会社 記憶装置、データ処理方法およびデータ処理プログラム
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US9021158B2 (en) 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
KR101689420B1 (ko) 2009-09-09 2016-12-23 샌디스크 테크놀로지스 엘엘씨 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8605533B2 (en) * 2009-11-27 2013-12-10 Samsung Electronics Co., Ltd. Apparatus and method for protecting data in flash memory
JP2011129192A (ja) * 2009-12-16 2011-06-30 Samsung Electronics Co Ltd 半導体記憶装置
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8255616B2 (en) * 2010-01-12 2012-08-28 Freescale Semiconductor, Inc. Non-volatile memory device and method therefor
EP2559036A1 (en) 2010-04-15 2013-02-20 Ramot at Tel-Aviv University Ltd. Multiple programming of flash memory without erase
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US20120137093A1 (en) * 2010-11-30 2012-05-31 Micron Technology, Inc. Reliable write for non-volatile memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
WO2012109677A2 (en) 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
JP2013003655A (ja) * 2011-06-13 2013-01-07 Denso Corp フラッシュメモリにデータの書き込みを行う制御装置
US9588883B2 (en) * 2011-09-23 2017-03-07 Conversant Intellectual Property Management Inc. Flash memory system
US8612670B2 (en) 2011-11-06 2013-12-17 Dsp Group Ltd. Method and system for managing flash write
ITMI20120595A1 (it) 2012-04-12 2013-10-13 St Microelectronics Srl Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio
TWI548991B (zh) * 2014-02-14 2016-09-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9666244B2 (en) 2014-03-01 2017-05-30 Fusion-Io, Inc. Dividing a storage procedure
KR102227636B1 (ko) 2014-12-31 2021-03-16 삼성디스플레이 주식회사 표시 장치용 데이터 저장 장치 및 이의 저장 방법
US9933950B2 (en) 2015-01-16 2018-04-03 Sandisk Technologies Llc Storage operation interrupt
EP3133604B1 (en) 2015-08-17 2020-11-11 Harman Becker Automotive Systems GmbH Method and device for fail-safe erase of flash memory
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US11094381B2 (en) * 2019-06-02 2021-08-17 Apple Inc. Rapid restart protection for a non-volatile memory system
US11507559B2 (en) 2020-05-25 2022-11-22 Hewlett Packard Enterprise Development Lp Object sharing by entities using a data structure
US11698745B2 (en) 2021-04-05 2023-07-11 Western Digital Technologies, Inc. Pre-erasure of memory in storage devices
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
US11756637B2 (en) 2021-11-24 2023-09-12 Western Digital Technologies, Inc. Block erase type detection using bit count check

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH096747A (ja) * 1995-06-20 1997-01-10 Ricoh Co Ltd フラッシュメモリ制御装置
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
JP2001250388A (ja) * 2000-03-06 2001-09-14 Fujitsu Ltd 消去動作情報を記憶する不揮発性メモリ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
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
US5799168A (en) 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6496939B2 (en) 1999-09-21 2002-12-17 Bit Microsystems, Inc. Method and system for controlling data in a computer system in the event of a power failure

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH096747A (ja) * 1995-06-20 1997-01-10 Ricoh Co Ltd フラッシュメモリ制御装置
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
JP2001250388A (ja) * 2000-03-06 2001-09-14 Fujitsu Ltd 消去動作情報を記憶する不揮発性メモリ

Also Published As

Publication number Publication date
US6977847B2 (en) 2005-12-20
JP2003187585A (ja) 2003-07-04
KR20030043691A (ko) 2003-06-02
US20030099134A1 (en) 2003-05-29

Similar Documents

Publication Publication Date Title
KR100991718B1 (ko) 플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는방법
US5875477A (en) Method and apparatus for error management in a solid state disk drive using primary and secondary logical sector numbers
US7457912B2 (en) Runtime flash device detection and configuration for flash data management software
US8041879B2 (en) Flash memory backup system and method
US6906961B2 (en) Erase block data splitting
KR100531192B1 (ko) 비휘발성 메모리의 제어방법
US7117328B2 (en) Non-volatile data storage system and data storaging method
KR101146059B1 (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한데이터 판독/기입 방법
US7917709B2 (en) Memory system for data storage and retrieval
US7903474B2 (en) Redundant purge for flash storage device
JPH05282889A (ja) 不揮発性半導体メモリ装置
JP2007179594A (ja) 半導体集積回路装置
US5724544A (en) IC memory card utilizing dual eeproms for image and management data
JPH0652694A (ja) フラッシュメモリの寿命検出方式
JP2003196165A (ja) 不揮発性メモリ及びそのデータ更新方法
JP2002288999A (ja) 半導体メモリ
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
JPH10161942A (ja) 情報記憶方法及び情報記憶装置及び情報処理装置
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2003263894A (ja) 不揮発性半導体メモリ装置の制御方法
US20070101048A1 (en) Verified purge for flash storage device
JPH06139131A (ja) メモリカード装置
JP2000057286A (ja) 書換可能不揮発性メモリ複数搭載型icカード
JP2003242788A (ja) 不揮発性半導体メモリ装置及びその制御方法

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141007

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151002

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee