KR20040038706A - 비휘발성 메모리 시스템에서 아우트-오브-시퀀스 기록프로세스를 효과적으로 수행하기 위한 방법 및 장치 - Google Patents

비휘발성 메모리 시스템에서 아우트-오브-시퀀스 기록프로세스를 효과적으로 수행하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20040038706A
KR20040038706A KR1020030075131A KR20030075131A KR20040038706A KR 20040038706 A KR20040038706 A KR 20040038706A KR 1020030075131 A KR1020030075131 A KR 1020030075131A KR 20030075131 A KR20030075131 A KR 20030075131A KR 20040038706 A KR20040038706 A KR 20040038706A
Authority
KR
South Korea
Prior art keywords
physical
logical
group
subunit
contents
Prior art date
Application number
KR1020030075131A
Other languages
English (en)
Other versions
KR100977899B1 (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 KR20040038706A publication Critical patent/KR20040038706A/ko
Application granted granted Critical
Publication of KR100977899B1 publication Critical patent/KR100977899B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

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

Abstract

본 발명은 내용이 비휘발성 메모리의 물리블록에 효율적으로 저장되도록 하는 방법 및 장치에 관한 것이다. 본 발명의 일 특징에 따르면, 메모리 유닛을 가진 비휘발성 메모리 시스템에서 기록동작을 수행하기 위한 방법은 제 1 내용세트를 상기 메모리 유닛의 제 1 물리 서브세트에 기록하는 단계와, 상기 제 1 내용세트가 상기 제 1 물리 서브유닛에 기록된후에 상기 메모리 유닛의 제 2 물리 서브유닛에 제 2 내용세트를 기록하는 단계를 포함한다. 제 1 물리 서브유닛은 메모리 유닛에서 제 2 물리 서브유닛 전에 배치된다. 제 1내용세트는 논리 유닛의 제 2 논리 서브유닛과 연관되며, 제 2 내용세트는 논리 유닛의 제 2 논리 서브유닛 전에 배치되는 논리유닛의 제 1 논리 서브유닛과 연관된다.

Description

비휘발성 메모리 시스템에서 아우트-오브-시퀀스 기록 프로세스를 효과적으로 수행하기 위한 방법 및 장치{METHOD AND APPARATUS FOR EFFECTIVELY ENABLING AN OUT OF SEQUENCE WRITE PROCESS WITHIN A NON-VOLATILE MEMORY SYSTEM}
본 발명은 공동계류중인 미국특허출원번호 10/281,739, 10/281,823, 10/281,670, 10/281,631, 10/281,855, 10/281,762, 10/281,696, 10/281,626, 및 10/281,804 뿐만아니라, 공동계류중인 미국 잠정 특허출원번호 60/421,910, 60/421,965, 60/422,166, 60421,746, 및 60/421,911과 관련되며, 각각은 2002년 10월 28일에 출원되었으며, 여기에 참조에 의하여 통합된다.
본 발명은 일반적으로 대용량 디지털 데이터 저장시스템에 관한 것으로서, 특히 블록의 페이지가 시퀀스의 일부로 기록되도록 하는 시스템 및 방법에 관한 것이다.
플래시 메모리 저장시스템과 같은 비휘발성 메모리 시스템의 사용은 메모리 시스템의 콤팩트한 물리적 크기와 비휘발성 메모리의 반복재생 능력으로 인하여 증가중에 있다. 플래시 메모리 저장장치의 콤팩트한 물리적 크기는 널리 사용되고 있는 장치의 저장 시스템의 사용을 용이하게 한다. 플래시 메모리 저장시스템을사용하는 장치는 디지털 카메라, 디지털 캠코더, 디지털 뮤직 플레이어, 포켓용 퍼스널 컴퓨터, 및 위성위치확인시스템을 포함하나 이에 제한되지는 않는다. 비휘발성 메모리를 반복적으로 재프로그래밍하기 위한 능력은 플래시 메모리 저장 시스템이 사용 및 재사용되도록 한다.
일반적으로, 플래시 메모리 저장시스템은 플래시 메모리 카드 및 플래시 메모리 칩 세트를 포함할 수 있다. 플래시 메모리 칩 세트는 일반적으로 플래시 메모리 컴포넌트 및 제어기 컴포넌트를 포함한다. 전형적으로, 플래시 메모리 칩 세트는 내장 시스템내로 어셈블리되도록 배열될 수 있다. 이러한 어셈블리 또는 호스트 시스템의 제조업자는 전형적으로 컴포넌트 형태의 플래시 메모리 뿐만아니라 다른 컴포넌트를 얻어서 호스트 시스템내에 플래시 메모리 및 다른 컴포넌트를 어셈블리한다.
플래시 메모리를 효과적으로 사용하기 위한 능력은 전체 플래시 메모리 시스템이 고성능 표준을 만족할때 중요하다. 일반적으로, 플래시 메모리의 비효율적인 사용은 빈번한 소거동작 및 빈번한 기록동작을 야기하며, 이는 전체 플래시 메모리 시스템의 동작을 상당히 느리게 한다. 예컨대, 도 1에 도시된 바와같이, 물리 블록(100)은 논리블록(도시안됨)의 제 3 페이지와 연관된 내용(104)을 포함할 수 있다. 논리블록(도시안됨)과 연관된 업데이트(110)가 논리블록의 제 4페이지와 연관될때, 비록 물리블록(100)내에 공간이 이용가능할지라도, 업데이트(110)는 페이지 'N-2'(112a)가 이미 기록되어 있기 때문에 물리블록(100)에 기록될 수 없으며, 업데이트(110)는 페이지 '3'(112b)에 기록될 것이다. 즉, 페이지 'N-2'(112a)와 같은 물리블록(100)의 나중 페이지가 기록되었을때, 물리블록(100)의 이전 페이지는 기록될 수 없다.
업데이트(110)가 물리블록(100)에 기록되도록 하는 것은 일반적으로 아우트-오브-시퀀스(out-of-sequence) 위반, 예컨대 기록위반을 유발한다. MLC NAND 플래시 메모리와 같은 NAND 플래시 메모리를 포함하는 임의의 플래시 메모리 시스템에서, 아우트-오브-시퀀스 기록 및 부분 기록은 허용되지 않는다. 그러므로, 일단 내용(104b)이 페이지 'N-2'(112a)에 존재하면 업데이트(110)를 페이지'3'(112b)으로 기록하는 것은 불가능하다.
업데이트(110)를 수용하기 위해서, 전형적으로 새로운 물리블록(120)이 얻어진다. 그 다음에, 내용(104a), 업데이트(110) 및 내용(104b)이 새로운 물리블록(120)에 기록된다. 일단 새로운 물리블록(120)이 기록되면, 물리블록(100)의 내용은 소거될 수 있다. 논리블록(도시 안됨)의 제 4 페이지와 연관된 업데이트가 빈번히 만들어질때, 새로운 물리블록을 얻기 위한 반복 과정, 새로운 물리블록으로의 기록 및 홀수 물리블록의 삭제가 필요할 수 있다. 결과로서, 'N' 페이지를 포함하는 각 물리블록의 단지 3개의 페이지가 기록될 수 있는 반면에, 다수의 페이지, 즉 N-3 페이지가 실질적으로 빈상태로 유지된다. 다수의 기록 및 소거 과정을 필요로할때, 각 물리블록에서의 N-3 페이지의 낭비는 전체 플래시 메모리 시스템이 비효율적으로 동작되도록 한다. 메모리 자원을 더 효율적으로 사용하기 위하여 물리블록(100)과 같은 물리블록의 페이지가 기록되도록 하면, MLC NAND 플래시 메모리 시스템과 같은 전체 플래시 메모리 시스템의 성능은 개선된다.
본 발명의 목적은 비휘발성 메모리 시스템의 메모리 자원이 보다 효율적으로 사용될 수 있도록 하는 시스템 및 방법을 제공하는데 있다.
본 발명의 다른 목적은 MLC NAND와 같은 메모리 시스템에서의 물리블록의 물리 페이지가 아우트-오브-시퀀스로 기록되도록 하는 시스템 및 방법을 제공하는데 있다.
도 1은 제 2 물리블록내에 기록되는 업데이트 및 제 1내용세트를 가진 제 1 물리블록을 나타낸 도면.
도 2a는 비휘발성 메모리를 포함하는 일반적인 호스트 시스템을 나타낸 도면.
도 2b는 도 2a의 메모리 장치를 나타낸 도면.
도 2c는 내장형 비휘발성 메모리를 포함하는 호스트 시스템을 나타낸 도면.
도 3은 본 발명의 실시예에 따라 업데이트가 아우트-오브-시퀀스로 기록되도록 하는 그룹으로 분할되는 물리블록을 나타낸 도면.
도 4a는 본 발명의 실시예에 따라 물리그룹을 포함하는 물리블록 및 논리블록을 포함하는 논리블록을 나타낸 도면.
도 4b는 본 발명의 일실시예에 따라 공통 논리블록, 예컨대 도 4a의 논리블록과 연관된 '업데이트' 물리블록, 예컨대 도 4a의 물리블록(420) 및 이전 물리블록을 나타낸 도면.
도 4c는 본 발명의 일 실시예에 따라 오리지날 물리블록과 연관된 내용을 포함하는 물리블록 및 '업데이트' 논리블록, 예컨대 도 4b의 '업데이트' 물리블록(420) 및 오리지날 물리블록(460)을 포함하는 물리블록을 나타낸 도면.
도 5는 본 발명의 일 실시예에 따라 아우트-오브-시퀀스 기록과정으로 고려될 수 있는 기록과정을 수행하는 한 방법과 연관된 단계들을 기술한 흐름도.
도 6은 본 발명의 실시예에 따라 시스템 구조의 블록도.
본 발명의 이들 및 다른 장점은 이하의 상세한 설명 및 도면을 참조로하여 상세히 설명될 것이다.
본 발명은 내용이 물리블록에 효율적으로 저장되도록 하는 시스템 및 방법에 관한 것이다. 본 발명의 일 특징에 따르면, 메모리 유니트를 가지는 비휘발성 메모리 시스템에서 기록동작을 수행하는 방법은 메모리 유니트의 제 1 물리 서브 유니트내에 제 1 내용세트를 기록하는 단계와, 제 1 내용세트가 제 1 물리 서브 유니트내로 기록된후 메모리 유니트의 제 2 물리 서브 유니트내로 제 2 내용 세트를 기록하는 단계를 포함한다. 제 1 물리 서브 세트는 메모리 유니트의 제 2 물리 서브 세트 전에 배치된다. 제 1 내용 세트는 논리 유니트의 제 2 논리 서브 유니트와 연관되며, 제 2 내용 세트는 논리 유니트의 제 2 논리 서브 유니트 전에 배치되는 논리 유니트의 제 1 논리 서브 유니트와 연관된다.
일 실시예에서, 메모리 유니트는 물리블록이며, 논리 유니트는 논리 블록이며, 제 1 물리 서브 유니트는 제 1 물리 페이지이며, 제 2 물리 서브 유니트는 제2 물리 페이지이며, 제 1 논리 서브 유니트는 제 1 논리 페이지이며, 제 2 논리 서브 유니트는 제 2 논리 페이지이다. 다른 실시예에서, 메모리 유니트는 MLC NAND 메모리의 일부분일 수 있다.
연관된 내용이 물리블록내에 이미 기록된 논리 페이지 전에 배치된 논리 페이지와 연관된 내용의 물리블록내로 저장하면, 물리블록은 비록 실제 물리 페이지가 순차적으로 기록될지라도 내용의 원근법중 아우트-오브-시퀀스 방식으로 효율적으로 기록된다. 논리블록의 내용이 물리블록내로 효율적으로 기록되도록함으로써, 물리블록은 필요한 기록 및 소거 동작의 수가 감소된다는 점에서 더 효율적으로 사용된다. 예컨대, 아우트-오브-시퀀스 기록동작이 발생할때 물리블록내의 그룹이 새로운 물리블록대신에 얻어질 수 있도록 블록내에 페이지를 그룹핑하면, 기록 페이지와 효율적으로 연관된 전체 플래시 메모리 시스템이 개선된다.
본 발명의 다른 특징에 따르면, 메모리 시스템의 비휘발성 메모리의 일부분인 물리블록에 논리블록과 연관된 내용을 제공하기 위한 방법은 논리블록의 제 1 논리그룹의 제 1 논리 페이지와 연관된 제 1내용세트를 얻는 단계와, 물리블록내에 제 1 내용세트를 저장하는 단계를 포함한다. 물리블록내에 제 1 내용세트를 저장하는 단계는 물리블록의 제 1 물리그룹의 제 1 물리페이지에 제 1 내용세트를 저장하는 단계, 및 제 1 논리그룹과 연관된 제 1 내용세트를 식별하는 제 1물리그룹에 지시자를 저장하는 단계를 포함한다.
일실시예에서, 제 1물리그룹은 제 1 물리그룹의 시작위치에서 시작 물리 페이지를 가진 다수의 물리 페이지를 포함하며, 제 1물리그룹에 지시자를 저장하는단계는 시작 물리 페이지에 지시자를 저장하는 단계를 포함한다. 다른 실시예에서, 본 발명의 방법은 논리블록과 연관된 제 2세트 내용을 얻는 단계와, 제 2내용세트가 제 1논리그룹의 제 2논리페이지와 연관될때 제 1물리그룹에 제 2 내용세트를 저장하는 단계를 포함하며, 제 1논리부의 제 2논리 페이지는 제 1 논리그룹내의 제 1 논리 페이지 다음에 배치된다.
부분 기록없이 순차적으로 MLC NAND 메모리에 기록될 MLC NAND 메모리 시스템와 같은 비휘발성 메모리 시스템에서 페이지에 대한 필요성은 다수의 기록 및 소거동작을 포함하는 논리블록과 연관된 내용을 업데이트하기 위하여 사용되는 동작을 야기할 수 있다. 다수의 기록 및 소거동작은 예컨대 논리블록의 특정 논리 페이지와 연관된 내용이 빈번히 업데이트될때 발생할 수 있다. 이러한 업데이트는 얻어질 다른 물리채널을 종종 필요로하며 또한 물리블록의 내용을 병합하고 기록 및 소거하는 것을 필요로한다. 기록 및 소거동작이 통상적으로 시간을 소비하기 때문에, 다수의 기록 및 소거동작은 비휘발성 메모리 시스템의 성능에 악영향을 미친다.
업데이트된 페이지를 저장 또는 다른 방식으로 기록하기 위하여 필요한 전체 시간 및 오버헤드량을 감소시키면, MLC NAND 메모리 칩과 같은 내장형 비휘발성 메모리 칩을 가진 전체 시스템, 예컨대 전체 호스트 시스템은 더 효율적으로 동작할 수 있다. 블록내의 페이지를 그룹으로 그룹핑하면, 전체 블록의 페이지는 블록에 대하여 아우트-오브-시퀀스로 기록된다. 블록내의 페이지의 그룹핑은 여기에 참조문헌으로서 통합되는 공동계류중인 미국특허 출원번호 10/281,855에 개시되어 있다. 물리블록내에서 적어도 하나의 이용가능한 그룹이 존재할때 물리블록에 페이지를 기록하기 위하여 새로운 물리블록대신에 물리블록내의 그룹이 얻어질 수 있도록 블록내의 페이지를 그룹핑함으로서, 기록 페이지와 연관된 전체 효율성은 개선될 수 있다. 게다가, 비록 물리블록의 각 그룹내의 페이지가 순차적으로 기록될지라도, 물리블록에 대하여 페이지의 내용은 아우트-오브- 시퀀스로 기록될 수 있다. 특히, 논리블록과 연관된 페이지는 제 1논리 페이지가 물리블록내에 기록된후 배치되는 논리블록의 제 2 논리 페이지와 연관된 내용 다음에 논리블록의 제 1논리페이지와 연관된 내용이 기록되도록 물리블록내에 기록될 수 있다. 그러나, 논리블록의 제 1 페이지와 연관된 내용이 기록되는 물리블록내의 페이지는 논리블록의 제 2 페이지와 연관된 내용이 기록되는 물리블록내의 페이지 다음에 배치된다.
논리블록과 연관된 데이트가 아우트-오브-시퀀스 방식으로 기록되도록 하는 블록내의 그룹의 사용시 장정을 가질 수 있는 플래시 메모리 시스템 또는 더 일반적으로 비휘발성 메모리 장치는 일반적으로 플래시 메모리, 예컨대 NAND 또는 MLC NAND, 카드 및 칩 세트를 포함한다. 전형적으로, 플래시 메모리 시스템은 호스트 시스템이 플래시 메모리 시스템으로부터 데이터를 판독하거나 또는 데이터를 기록할 수 있도록 호스트 시스템과 관련하여 사용된다. 그러나, 임의의 플래시 메모리 시스템은 내장형 플래시 메모리, 및 도 2c와 관련하여 이하에서 설명되는 바와같이 내장형 플래시 메모리에 대한 제어기로서 동작하도록 호스트상에서 실행되는 소프트웨어를 포함한다. 도 2a를 참조하면, 비휘발성 메모리 장치, 예컨대 콤팩트 플래시 메모리 카드를 포함하는 일반적인 호스트 시스템이 기술될 것이다. 호스트또는 컴퓨터 시스템(100)은 일반적으로 마이크로프로세서(108), 랜덤 액세스 메모리(RAM)(112) 및 입력/출력 회로(116)가 통신할 수 있도록 하는 시스템 버스(104)를 포함한다. 호스트 시스템(100)은 일반적으로 도시안된 다른 컴포넌트, 예컨대 디스플레이 장치 및 네트워킹 장치를 포함할 수 있다.
일반적으로, 호스트 시스템(100)은 정지화상 정보, 오디오 정보, 및 비디오 정보를 포함하는 정보를 포착할 수 있으나 이에 제한되지는 않는다. 이러한 정보는 실시간으로 포착되어 무선으로 호스트 시스템(100)에 전송될 수 있다. 호스트 시스템(100)이 임의의 시스템인 반면에, 호스트 시스템(100)은 디지털 카메라, 비디오 카메라, 셀룰라 통신장치, 오디오 플레이어 또는 비디오 플레이어와 같은 시스템일 수 있다. 그러나, 호스트 시스템(100)은 데이터 또는 정보를 저장하고 데이터 또는 정보를 검색하는 임의의 시스템일 수 있다는 것을 인식하라.
호스트 시스템(100)은 단지 데이터를 포착하거나 또는 단지 데이터를 검색하는 시스템일 수 있다. 즉, 호스트 시스템(100)은 일 실시예에서 데이터를 저장하는 전용 시스템이거나 또는 호스트 시스템(100)은 데이터를 판독하는 전용 시스템일 수 있다. 예로서, 호스트 시스템(100)은 단지 데이터를 기록 및 저장하기 위하여 배열되는 메모리 기록기일 수 있다. 대안적으로, 호스트 시스템(100)은 데이터를 판독하거나 또는 검색하나 데이터를 포착하지는 않는 MP3 플레이어와 같은 장치일 수 있다.
일 실시예에서 소거가능한 비휘발성 메모리 장치인 비휘발성 메모리 장치(120)는 정보를 저장하기 위하여 버스(104)와 인터페이스되도록 배열된다. 선택적인 인터페이스 블록(130)은 비휘발성 메모리 장치(120)가 버스(104)와 직접 인터페이스되도록 할 수 있다. 존재할때, 입력/출력 회로블록(116)은 당업자에 의하여 이해될 수 있는 바와같이 버스(104)에 대한 로딩을 감소시키기 위하여 사용된다. 비휘발성 메모리 장치(120)는 비휘발성 메모리(124) 및 선택적인 메모리 제어 시스템(128)을 포함한다. 일 실시예에서, 비휘발성 메모리 장치(120)는 단일칩 또는 다이상에서 실행될 수 있다. 선택적으로, 비휘발성 메모리 장치(120)는 칩 세트를 형성하고 비휘발성 메모리 장치(120)로써 함께 사용될 수 있는 다중 개별 소자 또는 다중 칩 모듈상에서 실행될 수 있다. 비휘발성 메모리 장치(120)의 일 실시예는 도 2b를 참조하여 이하에서 더 상세히 설명될 것이다.
비휘발성 메모리(124), 예컨대 NAND 플래시 메모리 또는 MLC NAND 플래시 메모리와 같은 플래시 메모리는 데이터가 필요에 따라 액세스되어 판독될 수 있도록 데이터를 저장한다. 비휘발성 메모리(124)에 저장된 데이터는 비록 비휘발성 메모리(124)가 소거가능하지 않을지라도 적절하게 소거될 수 있다. 데이터를 저장하고 판독하고 소거하는 과정은 메모리 제어 시스템(128)에 의하여 제어되며, 메모리 제어 시스템(128)이 존재하지 않을때 마이크로프로세서(108)에 의하여 실행되는 소프트웨어에 의하여 제어될 수 있다. 비휘발성 메모리(124)의 동작은 비휘발성 메모리(124)의 섹션이 동일하게 사용되도록 함으로써 비휘발성 메모리(124)의 수명이 최대로 되도록 관리될 수 있다.
비휘발성 메모리 장치(120)는 선택 메모리 제어 시스템(128), 즉 제어기를 포함하는 것으로 기술되었다. 종종, 비휘발성 메모리 장치(120)는 비휘발성 메모리(124)에 대한 개별칩 및 메모리 제어 시스템(128), 즉 제어기를 포함할 수 있다. 예로서, PC 카드, 콤팩트 플래시 카드, 멀티미디어 카드 및 안전 디지털 카드를 포함하는(그러나, 이에 제한되지 않음) 비휘발성 메모리 장치(120)는 개별 칩상에서 실행될 수 있는 제어기를 포함하는 반면에, 다른 비휘발성 메모리 장치는 개별 칩상에서 샐행되는 제어기를 포함하지 않을 수 있다. 비휘발성 메모리 장치(120)가 개별 메모리 및 제어기 칩을 포함하지 않는 실시예에서, 메모리 및 제어기 기능은 당업자에 의하여 인식되는 바와같이 단일 칩으로 집적될 수 있다. 선택적으로, 메모리 제어 시스템(128)의 기능은 예컨대 비휘발성 메모리 장치(120)가 전술한 바와같이 메모리 제어기(128)를 포함하지 않는 실시예에서 처럼 마이크로프로세서(108)에 의하여 제공될 수 있다.
도 2b를 참조하면, 비휘발성 메모리 장치(120)는 본 발명의 실시예에 따라 더 상세히 기술될 것이다. 전술한 바와같이, 비휘발성 메모리 장치(120)는 비휘발성 메모리(124)를 포함하며, 메모리 제어 시스템(128)을 포함할 수 있다. 메모리(124) 및 제어 시스템(128) 또는 제어기는 비록 메모리(124)가 내장형 MLC NAND 메모리와 같은 내장형 NAND 장치일때 예컨대 비휘발성 메모리 장치(120)가 제어시스템(128)을 포함하지 않을 수 있을지라도 비휘발성 메모리 장치(120)의 주요 컴포넌트일 수 있다. 메모리(124)는 반도체 기판상에 형성된 메모리 셀의 어레이일 수 있으며, 데이터의 하나 이상의 비트는 메모리 셀의 개별 저장소자상에 전하의 2이상의 레벨중 한 레벨의 전하를 저장함으로써 개별 메모리 셀에 저장된다. 비휘발성 플래시 전기 소거가능 프로그래머블 판독 전용 메모리(EEPROM)는 시스템에 대한 공통형태의 메모리의 예이다.
현재, 제어시스템(128)은 버스(15)를 통해 호스트 컴퓨터 또는 다른 시스템과 통신하며, 이들 시스템은 메모리 시스템을 사용하여 데이터를 저장한다. 버스(15)는 일반적으로 도 2a의 버스(104)의 일부분이다. 제어시스템(128)은 메모리(124)의 동작을 제어하며, 메모리(124)는 호스트에 의하여 제공된 데이터를 기록하고 호스트에 의하여 요구된 데이터를 판독하며 메모리(124)를 동작시킬때 다양한 하우스키핑 기능을 수행하기 위하여 메모리 셀 어레이(11)를 포함한다. 제어시스템(128)은 일반적으로 연관된 비휘발성 소프트웨어 메모리, 다양한 논리회로 등을 가지는 범용 마이크로프로세서를 포함한다. 또한, 특정 루틴의 성능을 제어하기 위한 하나 이상의 상태 머신이 종종 포함된다.
메모리 셀 어레이(11)는 어드레스 디코더(17)를 통해 제어시스템(128) 또는 마이크로프로세서(108)에 의하여 어드레싱된다. 디코더(17)는 제어시스템(128)에 의하여 어드레싱된 메모리셀 그룹에 데이터를 프로그램하고 상기 메모리 셀 그룹으로부터 데이터를 판독하기 위하여 어레이(11)의 게이트 및 비트 라인에 적정 전압을 공급한다. 추가회로(19)는 어드레싱된 셀 그룹으로 프로그래밍된 데이터에 따르는 어레이 엘리먼트에 제어전압이 공급되는 프로그래밍 구동기를 포함한다. 회로(19)는 감지 증폭기 및 어드레싱된 메모리 셀 그룹으로부터 데이터를 판독하는데 필요한 다른 회로를 포함한다. 어레이(11)로 프로그래밍될 데이터 또는 어레이(11)로부터 최근에 판독된 데이터는 전형적으로 제어시스템(128)내의 버퍼 메모리(21)에 저장된다. 제어시스템(128)은 보통 명령 및 상태 데이터등을 일시적으로 저장하는 다양한 레지스터를 포함한다.
어레이(11)는 다수의 BLOCK0-N 메모리 셀로 분할된다. 플래시 EEPROM 시스템에 대해 공통적으로, 블록은 전형적으로 가장 작은 소거단위이다. 즉, 각각의 블록은 함께 소거되는 최소수의 메모리 셀을 포함한다. 각각의 블록은 다수의 페이지로 분할된다. 당업자에게 인식되는 바와같이, 페이지는 가장 작은 프로그래밍 단위일 수 있다. 즉, 기본적인 프로그래밍 동작은 메모리 셀의 한 페이지에 데이터를 기록하거나 상기 페이지로 데이터를 판독한다. 하나 이상의 데이터 선택기는 전형적으로 각 페이지내에 저장된다. 도 2b에 도시된 바와같이, 하나의 선택기는 사용자 데이터 및 오버헤드 데이터를 포함한다. 오버헤드 데이터는 전형적으로 선택기의 사용자 데이터로부터 계산되는 에러정정코드(ECC)를 포함한다. 제어시스템(128)의 부분(23)은 데이터가 어레이(11)에 프로그래밍될때 ECC를 계산하고 또한 데이터가 어레이(11)로부터 판독될때 ECC를 검사한다. 대안적으로, ECC는 그들이 속하는 사용자 데이터와 다른 페이지 또는 다른 블록에 저장된다.
사용자 데이터의 선택기는 전형적으로 자기 디스크 드라이브의 선택기 크기에 대응하는 512바이트이다. 오버헤드 데이터 또는 용장성 데이터는 전형적으로 추가 16 바이트이다. 데이터의 한 섹터는 대부분 각 페이지에 공통적으로 포함되나, 두개 이상의 섹터는 페이지를 형성한다. 임의의 수의 페이지는 일반적으로 블록을 형성할 수 있다. 예로서, 블록은 8개의 페이지에서 512, 1024 또는 그 이상의 페이지까지 형성될 수 있다. 블록의 수는 메모리 시스템에 대한 적정 데이터 저장용량을 제공하도록 선택된다. 어레이(11)는 전형적으로 소수의 서브-어레이(도시안됨)로 분할되며, 각각의 서브-어레이는 블록의 부분을 포함하며, 다양한 메모리동작의 실행시 병렬계산을 증가시키기 위하여 서로 별개로 동작한다. 다중 서브-어레이의 사용예는 여기에 참조에 의하여 통합되는 미국특허번호 5,890,192에 개시되어 있다.
일 실시예에서, MLC NAND 메모리와 같은 비휘발성 메모리는 시스템, 예컨대 호스트 시스템내에 내장된다. 도 2c는 내장형 비휘발성 메모리를 포함하는 호스트 시스템을 나타낸 도면이다. 호스트 또는 컴퓨터 시스템(150)은 일반적으로 호스트 시스템(150)의 다른 컴포넌트(도시안됨)사이의 마이크로프로세서(158), RAM(162), 및 입력/출력회로(166)가 통신하도록 하는 시스템 버스(154)를 포함한다. 비휘발성 메모리(174), 예컨대 플래시 메모리는 정보가 호스트 시스템(150)내에 저장되도록 한다. 인터페이스(180)는 정보가 비휘발성 메모리(174)로부터 판독되고 상기 비휘발성 메모리(174)로 기록되도록 하기 위하여 비휘발성 메모리(174) 및 버스(154)사이에 제공된다.
비휘발성 메모리(174)는 비휘발성 메모리(174)를 제어하도록 배열되는 펌웨어 및 소프트웨어중 하나 또는 둘다를 효율적으로 실행하는 마이크로프로세서(158)에 의하여 관리될 수 있다. 즉, 마이크로프로세서(158)는 비휘발성 메모리(174)가 제어되도록 하는 코드장치, 즉 소프트웨어 코드 장치 또는 펌웨어 코드장치를 실행할 수 있다. 이러한 코드장치는 이하에서 기술되며, 비휘발성 메모리(174)의 물리블록이 어드레싱되고 정보가 물리블록에 저장, 판독 및 소거되도록 할 수 있다.
도 3은 물리블록을 나타낸 도면이며, 상기 물리블록은 본 발명의 일 실시예에 따라 그룹으로 분할되며 업데이트가 아우트-오브-시퀀스로 기록되도록 한다. 물리블록(300)은 일반적으로 임의의 수의 페이지(304)를 포함할 수 있다. 도시된 바와같이, 물리블록(300)은 4개의 그룹(308)으로 분할된 16개의 페이지(304)를 포함한다. 그러므로, 각각의 그룹(308)은 이전 그룹(308)으로부터 4개의 페이지(304) 만큼 이격되어 시작되는 것으로 고려될 수 있다. 그러나, 페이지(304)의 전체 수, 그룹(308)의 수 및 각 그룹(308)내의 페이지(304)의 수는 특정 메모리 시스템의 요건(그러나 이에 제한되지 않음)을 포함하는 다양한 요소에 따라 광범위하게 변화할 수 있다는 것을 인식하라.
물리블록(300)은 논리블록의 이전내용을 효과적으로 교환하는 논리블록(도시안됨)과 연관된 업데이트된 내용을 포함하도록 배열되는 '업데이트' 물리블록일 수 있다. 도시된 바와같이, 블록(300)내의 제 1그룹(308a)의 페이지(304a)는 블록(300)과 연관된 논리블록(도시안됨)의 제 1 페이지와 연관된 내용(312)을 포함한다. 내용(312)이 페이지(304a)내에 기록될때, 페이지(304a)의 데이터 영역 및 오버헤드 또는 용장영역은 실질적으로 동일하게 기록된다. 제 1그룹(308a)은 논리블록(도시안됨)의 제 4 페이지와 연관된 내용(314)을 포함하는 제 4 페이지(304d)를 포함한다.
비록 제 1그룹(308a)에 포함되는 페이지(304b, 304c)가 거의 비어있을지라도, 추가로 업데이트된 내용이 블록(300)에 저장될때, 상기 내용은 페이지(304b, 304c)에 저장되지 않을 수 있다. 그룹(308)내의 페이지(304)는 일단 상위 페이지(304)가 기록되면 하위 또는 이전 페이지(304)가 기록되지 않도록 순차적으로만 기록될 수 있다. 예로서, 블록(300)에 대응하는 논리블록(도시안됨)의 제 3페이지와 연관된 내용(316)이 블록(300)에 기록될때, 내용(316)은 다음으로 이용가능한 그룹(308), 즉 그룹(308b)에 포함되는 제 3 페이지(304g)에 기록된다. 제 2그룹(308b)의 제 3 페이지(304g)는 블록(300)과 연관된 제 7 전체 페이지이다.
논리블록(도시안됨)의 제 1 페이지와 연관된 내용(312)이 업데이트된 내용(312')으로 교환될때, 비록 제 2그룹(308b)의 페이지(304e, 304f, 304h)가 실질적으로 비어있을지라도, 업데이트된 내용(312')은 제 2 그룹(308b)에 기록되지 않을 수 있다. 대신에, 업데이트된 내용(312')은 블록(300)과 연관된 제 9전체 페이지인 제 3그룹(308c)의 제 1 페이지(304i)에 기록된다. 일반적으로, 새로이 이용가능한 그룹(308)은 현재 그룹(308)에 대한 부분 기록 위반 또는 아우트-오브-시퀀스 위반중 한 위반을 얻을 수 있으며, 이러한 위반은 업데이트된 내용이 현재 그룹(308)에 기록되는 경우에 발생한다. 업데이트된 내용(312')이 제 3그룹(308c)의 제 1 페이지(304i)에 기록되기전에, 제 2그룹(308b)의 제 4 페이지(304h) 논리블록(도시안됨)의 제 4 페이지와 연관된 내용과 함께 기록될 수 있다.
일단 업데이트된 내용(312')이 제 3 그룹(308c)의 제 1 페이지(304i)에 기록되면, 논리블록(도시안됨)의 제 3 페이지와 연관된 업데이트된 내용(316')이 기록되는 경우에, 업데이트된 내용(316')은 제 3 그룹(308c)내의 적정 페이지, 즉 제 3그룹(308c)의 제 3 페이지(304k)에 기록될 수 있다. 업데이트된 내용(316')이 기록된후에 페이지(304d)에 기록되는 내용(314)과 연관된 업데이트된 내용만이 그룹(308c)에 기록될 수 있다. 다른 내용 또는 업데이트된 내용은 일반적으로 제4그룹(308d)에 기록된다. 예컨대, 논리블록(도시안됨)의 제 2 페이지와 연관되는 내용(318)이 기록될때, 내용(318)은 제 4그룹(308d)의 제 2페이지(204n)에 저장된다.
내용이 물리블록(300)에 기록될때, 내용은 페이지의 시퀀스에 대하여 "하향" 방향으로 기록된다. 그러나, 내용이 물리블록(300)으로부터 판독될때, 임의의 주어진 논리 페이지와 연관된 가장 최근의 내용이 판독되고 주어진 논리 페이지와 연관된 이전 또는 교환된 내용이 효율적으로 무시될 수 있도록 "상향" 방향으로 판독된다. 다시 말해서, 기록과정은 일반적으로 물리블록(300)의 시작지점에서부터 수행되는 반면에, 판독과정은 물리블록(300)의 종료지점에서부터 수행된다.
논리블록(도시안됨)의 페이지와 연관된 내용이 그룹(308)으로 기록될때, 논리블록의 페이지는 아우트-오브-시퀀스 방식으로 물리블록(300)에 효율적으로 기록된다. 즉, 만일 물리블록(300)이 그룹(308)없이 효율적으로 관찰되면, 논리블록(도시안됨)의 페이지와 연관된 내용은 물리블록(300)내에 아우트-오브-시퀀스 방식으로 기록되는 것으로 보인다. 예컨대, 논리블록의 제 3페이지와 연관된 내용(316)은 논리블록의 제 4페이지와 연관된 내용(314)이 기록된후에 기록되는 것으로 보인다. 그러나, 내용은 각 그룹(308)내에서 순차적으로 기록된다. 각 그룹(308), 예컨대 제 3그룹(308c)내에 내용을 순차적으로 기록하면, 물리블록(300)에 대하여 내용은 실질적으로 아우트-오브-시퀀스 방식으로 기록된다.
일반적으로, 논리블록의 페이지는 논리그룹으로 분할될 수 있다. 논리블록의 페이지를 분할하거나 그룹핑하면, 논리블록과 연관된 물리블록의 물리그룹에 저장된 내용은 더 용이하게 식별된다. 도 4a를 참조하면, 논리그룹을 포함하는 논리블록 및 물리그룹을 포함하는 물리블록은 본 발명의 실시예에 따라 기술될 것이다. 논리그룹(408)으로 그룹핑되는 논리 페이지(404)를 포함하는 논리블록(400)은 물리블록(420)과 연관된다. 물리그룹(428)으로 그룹핑되는 페이지(424)를 포함하는 물리블록(420)은 물리블록(420)이 논리블록(400)과 연관되는 내용, 예컨대 새로운 또는 업데이트된 내용을 포함하도록 배열된다. 마찬가지로, 물리블록(420)은 논리블록(400)과 연관된 업데이트된 내용이 저장될 수 있는 "업데이트" 물리블록으로 고려될 수 있다.
논리블록(400) 및 물리블록(420)은 일반적으로 임의의 수의 페이지(4040, 424)를 각각 포함할 수 있다. 페이지(404, 424)의 수는 블록(400, 420)을 포함하는 호스트 시스템의 비휘발성 메모리 시스템의 요건에 따를 수 있다. 도시된 바와같이, 비록 페이지의 수가 광범위하게 변화될 수 있을지라도, 논리블록(400)은 32개의 페이지(404)를 포함하며, 물리블록(420)은 32개의 페이지(424)를 포함한다. 예컨대, 블록(400, 420)은 8개, 16개, 64개, 128개 또는 256개의 페이지를 포함할 수 있다. 유사하게, 비록 각 그룹(408)이 8개의 페이지(404)를 포함하고 각 그룹(428)이 8개의 페이지(424)를 포함할지라도, 그룹의 페이지 수는 호스트 시스템의 요건에 따라 광범위하게 변화할 수 있다.
전형적으로, 각각의 논리그룹(408)은 논리그룹 식별자에 의하여 식별된다. 예컨대, 제 1논리그룹(408a)은 'LG1'으로서 식별될 수 있는 반면에 제 2논리그룹(408b)은 'LG2'로서 색별된다. 일 실시예에서, 각각의 논리그룹 식별자는 논리블록(400)내의 논리그룹(408)을 특이하게 식별하는 비트 또는 일련의 비트일 수 있다. 논리 페이지(404)와 연관된 내용이 물리그룹(428)에 저장될때, 내용은 일반적으로 내용과 연관된 것이 어느 논리그룹인지를 식별하는 논리그룹 식별자와 함께 저장된다. 도시된 바와같이, 제 1 논리그룹(408a)의 제 1 페이지(404a)아 연관된 업데이트된 내용(430)이 블록(420)에 기록되고 모든 물리그룹(428a)이 이용가능할때, 업데이트된 내용(430)은 제 1 논리그룹(408a)과 연관되는 물리 페이지(428a)의 내용을 식별하는 논리그룹 식별자(432)와 함께 제 1 물리그룹(428a)의 제 1 페이지(424a)에 기록된다. 비록 논리그룹 식별자(432)가 제 1 물리그룹(428a)과 같은 물리그룹(428)내의 임의의 페이지(424)에 기록될 수 있을지라도, 논리그룹 식별자(432)는 제 1 물리그룹(428a)의 제 1 페이지(424a)와 같은 물리그룹(428)의 제 1 페이지(424)에 대한 오버헤드 영역 또는 용장영역으로 기록된다.
일단 제 1 물리그룹(428a)이 제 1논리그룹과 연관되면, 예컨대 논리그룹 식별자(432)의 사용으로 인하여 제 1물리그룹(428a)의 페이지(424)는 제 1논리그룹(408a)내의 페이지(404)와 연관된 내용을 포함한다. 즉, 기술된 실시예에서, 각각의 물리그룹(428)은 단일 논리그룹(408)과 연관된 내용을 포함한다. 제 1물리그룹(428a)이 제 1 논리그룹(408a)과 연관된후, 제 1논리 페이지(404a) 다음에 배치된 논리 페이지(404)와 연관된 제 1 논리그룹(408a)과 연관된 업데이트된 또는 새로운 내용은 제 1 물리그룹(428a)내의 페이지(424)에 기록 또는 저장될 수있다. 예로서, 8개의 논리 페이지(404b)와 연관된 업데이트된 내용(434)은 물리 페이지(424c)에 저장될 수 있다.
논리그룹(408a)의 제 7논리그룹(도시안됨)과 연관된 새로운 또는 업데이트된 내용(436)이 물리블록(420)에 기록될때, 상기 내용(436)이 제 1 물리그룹(428a)에 기록되지 않을 수 있기 때문에, 내용(436)은 이용가능한 물리그룹(428), 예컨대 제 2 물리그룹(428b)의 적절한 페이지(424e)에 기록된다. 도시된 바와같이, 제 1논리그룹(408a)과 연관되는 제 2 물리그룹(428b)의 내용을 식별하는 논리그룹 식별자(438)는 제 2물리그룹(428b), 예컨대 물리그룹(428b)의 제 1 물리 페이지(424d)에 기록된다. 그 다음에, 제 8 논리 페이지(404b)와 연관되는 새로운 업데이트된 내용(440)이 기록되는 경우에, 새로운 업데이트된 내용(440)은 제 2 물리그룹(428b)과 연관된 제 8 물리 페이지(424f)로 기록될 수 있다.
만일 업데이트된 내용(440)이 제 2 물리그룹(428b)제 2물리그룹(428b)에 기록된후 논리블록(400)과 연관된 다음 업데이트가 발생하면, 새로이 업데이트된 내용은 다음으로 이용가능한 물리그룹9428)에 기록된다. 예컨대, 만일 제 3 논리그룹(408c)의 제 2 내지 제 4논리 페이지(404)와 연관되는 새로운 또는 업데이트된 내용(422, 444, 446)이 물리블록(420)에 각각 기록되면, 내용(422, 444, 446)은 제 3물리그룹(428c)에 기록된다. 특히, 내용(422)은 제 3 물리그룹(428c)의 제 2 페이지(424h)에 기록되며, 내용(444)은 제 3 물리그룹(428c)의 제 3 페이지(424i)에 기록되며, 내용(446)은 제 3 물리그룹(428c)의 제 4 페이지(424j)에 기록된다. 제 3 논리그룹(408c)과 연관된 제 3 물리그룹(428c)을 용이하게 식별하기 위하여, 제3 논리그룹(408c)을 식별하는 논리그룹 식별자(448)는 제 3 물리그룹(428c), 예컨대 제 3 물리그룹(428c)의 제 1 물리 페이지(424g)와 연관된 오버헤드 영역에 저장된다.
부분 기록 위반 또는 아우트-오브-시퀀스 위반을 방지하기 위하여, 논리그룹(408a)과 연관된 내용에 대하여 추가 업데이트가 만들어질때, 상기 업데이트된 내용은 비록 추가적으로 이용가능한 페이지, 예컨대 페이지(424k)가 제 3 물리그룹(428c)내에 존재할 수 있을지라도 제 4 물리그룹(428d)에 기록된다. 도시된 바와같이, 제 4 물리그룹(428d)은 제 4 물리그룹(428d)과 연관되는 제 1 논리그룹(408a)을 식별하는 논리 그룹 식별자(450)를 포함한다. 논리 페이지(404a)와 연관된 업데이트된 내용(452)은 물리그룹(428d)의 제 1페이지(424l)에 저장되는 반면에, 제 1논리그룹(408a)의 제 5 논리 페이지(도시안됨)와 연관된 내용(454)은 업데이트된 내용(452)이 저장된후에 제 4물리그룹(428d)의 제 5페이지(454p)에 기록된다. 최종적으로, 논리 페이지(404b)와 연관된 업데이트된 내용(456)은 제 4물리그룹(428d)의 물리 페이지(424s)에 기록될 수 있다.
논리블록(420)과 연관된 업데이트를 수용하기 위하여 물리블록(420)내에서 이용가능한 적절한 물리그룹(428)이 존재하지 않으면, 물리블록(420)의 내용은 도 4b 및 도 4c와 관련하여 이하에서 논의되는 바와같이 논리블록과 연관된 "오리지날" 물리블록, 예컨대 새로운 물리블록의 내용과 병합될 수 있다. 즉, 논리블록(400)이 하나 이상의 연관된 물리블록을 가지기 때문에, 물리블록(420)을 포함하는 물리블록은 분석될 수 있다. 물리블록(420)의 내용이 병합되거나 또는다른 방식으로 새로운 물리블록에서 분석된후에, 다른 새로운 물리블록은 논리블록(400)과 연관된 업데이트된 내용을 저장하기에 적합한 "업데이트" 물리블록으로써 사용하기 위하여 얻어질 수 있다.
공통 논리블록과 연관된 물리블록을 분석하는 단계는 논리블록과 최근에 연관된 물리블록이 어느 논리블록인지를 결정하는 단계를 포함하며, 따라서 분석된 논리블록은 공통 논리블록, 예컨대 논리블록(400)과 연관된 가장 최근의 내용을 포함한다. 여기에 참조에 의하여 통합되는 공동계류중인 미국특허 출원번호 10/281,762에 기술되는 업데이트 인덱스는 논리블록과 가장 최근에 연관된다. 종종, 논리블록이 하나 이상의 연관된 물리블록을 가지고 또한 논리블록과 연관될 하나의 물리블록을 식별하는데 필요할때, 업데이트 인덱스는 논리블록과 연관된 현재의 내용을 어느 물리블록이 포함하는지를 두 물리블록으로부터의 업데이트 인덱스의 비교가 식별되도록 업데이트가 배열되기 때문에 물리블록으로부터 얻어질 수 있다.
물리블록과 연관된 적어도 하나의 오버헤드 또는 용장영역에 저장될 수 있는 업데이트 인덱스는 복사 또는 병합할때 포함되는 두개의 물리블록중 어느 것이 이전 물리블록인지를 지시하고 두개의 물리블록중 어느 블록이 새로운 또는 업데이트 물리블록인지를 지시하도록 배열될 수 있다. 예컨대, 새로운 물리블록의 업데이트 인덱스는 업데이트 인덱스의 값이 이전 물리블록의 업데이트 인덱스이도록 세팅될 수 있다. 그러므로, 물리블록이 "업데이트" 물리블록인지를 결정하기 위하여 물리블록의 업데이트 인덱스가 체크될때, 가장 높은 업데이트 인덱스를 가진 물리블록이 "업데이트" 물리블록인 것으로 결정될 수 있다.
도 4b는 본 발명의 실시예에 따라 공통 논리블록, 예컨대 도 4a의 논리블록(400)과 연관되는 "업데이트" 물리블록, 예컨대 도 4a의 물리블록(420)과 이전 물리블록을 나타낸 도면이다. 물리블록(420)이 도 4a의 논리블록(400)과 연관된 추가 업데이트를 허용할 수 없을때, 물리블록(420)의 내용은 논리블록(400)과 연관된 오리지날 물리블록일 수 있는 물리블록(460)의 내용(462)과 병합될 수 있다. 즉, 물리블록(460)의 내용(462) 및 물리블록(420)의 내용은 도 4a의 논리블록(400)과 연관된 가장 최근의 내용 또는 데이터를 식별하기 위하여 효율적으로 비교될 수 있다. 전형적으로, 도 4a의 논리블록(400)과 연관된 가장 최근의 업데이트된 내용은 물리블록(420)에 배치될 것이다. 그러나, 가장 최근의 내용이 물리블록(460)에 기록되기 때문에 업데이트되지 않은 논리블록(400)과 연관된 가장 최근의 내용은 물리블록(460)으로부터 얻어질 것이다.
비록 도 4a의 논리블록(400)과 연관된 가장 최근의 내용이 임의의 경우에 물리블록(420)에 저장될지라도, 논리블록(400)과 연관된 가장 최근의 내용은 새로이 얻어진 물리블록, 예컨대 도 4c의 블록(480)에 저장된다. 물리블록(420, 460)을 포함하는 복사 또는 병합과정동안, 판독과정은 각 블록(420, 460)의 끝에서 시작될 수 있다. 예로서, 블록(420)의 페이지(424s)가 먼저 판독될 수 있다. 도 4c의 블록(480)이 도 4a의 논리블록(400)과 연관된 가장 최근의 내용과 함께 기록될때, 블록(480)은 블록(480)의 시작지점에서 기록이 시작될 것이다.
블록(420, 460)이 이전 블록인지 그리고 블록(420, 460)이 업데이트된 내용을 포함하는 "업데이트" 블록인지를 결정하기 위하여, 각 블록(420, 460)과 연관된 오버헤드 영역에 저장되는 업데이트 인덱스(470)는 비교될 수 있다. 어느 블록(420, 460)이 새로운 것인지를 업데이트 인덱스(470)가 지시하기 때문에, 블록(420)이 도 4a의 논리블록(400)과 가장 최근에 연관되는 것이라고 업데이트 인덱스(470b)가 지시할때, 블록(420)은 "업데이트" 블록인 것으로 결정된다. 대안적으로, 블록(460)이 도 4a의 논리블록(400)과 가장 최근에 연관된 것으로 업데이트 인덱스(470a)가 지시할때, 블록(460)은 "업데이트" 블록인 것으로 결정된다. 기술된 실시예에서, 블록(420)이 "업데이트 블록"이기 때문에, 업데이트 인덱스(470b)는 블록(420)이 블록(460)보다 좁다는 것을 지시하도록 배열된다.
블록(420)의 내용이 판독될때, 블록(420)내의 내용이 블록(420)내의 다른 내용을 교환되어야 하는지에 대한 결정이 만들어질 수 있다. 예로서, 내용(456)이 판독될때, 내용(456)은 도 4a의 논리블록(400)의 제 8 논리 페이지(404b)와 연관되는 임의의 다른 내용과 교환되는 것으로 결정될 수있다. 게다가, 블록(420)내에 저장된 논리그룹 지시자는 도 4a의 어느 논리 페이지(404)가 특정 그룹(428)의 내용과 연관되는지를 용이하게 결정하기 위하여 사용될 수 있다.
도 4a의 논리블록(400)과 연관된 가장 최근 또는 현재의 내용이 식별되도록 물리블록(420, 460)이 분석된후에, 가장 최근의 내용은 도 4c에 도시된 바와같이 물리블록(480)에 기록될 수 있다. 도시된 바와같이, 도 4b의 물리블록(460)에 사전에 존재하며 도 4b의 물리블록(420)의 임의의 내용에 의하여 교환되지 않은 내용(462)은 물리블록(480)에 포함되며, 이는 물리블록(420)의 가장 최근에 업데이트된 내용, 즉 내용(452, 454, 440, 456, 442, 444, 446)이다. 도 4a의 논리블록(400)과 연관된 가장 최근의 내용을 포함하는 것외에 물리블록(480)은 물리블록(480)내의 임의의 페이지에 대한 오버헤드 또는 용장영역에 저장될 수 있는 업데이트 인덱스를 포함할 수 있다.
물리블록(480)이 존재할 수 있으며, 예컨대 도 4b의 물리블록(420, 460)은 물리블록(420)에 기록된 추가 업데이트가 존재하지 않을때 또는 물리블록(420)이 추가 업데이트를 수용할 수 없을때 분석될 수 있다. 도 4b의 물리블록(420)에 추가 업데이트가 저장되지 않을 수 있기 때문에 물리블록(480)이 배치될때, 일단 물리블록(480)이 배치되면, 새로운 "업데이트" 물리블록이 얻어질 수 있다. 일 실시예에서, 새로운 "업데이트" 물리블록의 업데이트 인덱스는 새로운 "업데이트" 물리블록이 물리블록(480)보다 도 4a의 논리블록(400)과 더 연관된다는 것을 지시하도록 세팅될 수 있다.
도 5를 참조하면, 아우트-오브-시퀀스 기록방식으로 고려될 수 있는 기록방식을 실행하는 방법과 연관된 단계들은 본 발명의 실시예에 따라 기술될 것이다. 물리블록에 업데이트 또는 업데이트들을 기록하는 방법(500)은 현재의 논리블록과 연관되는 업데이트가 얻어지는 단계(504)에서 시작한다. 업데이트는 호스트 시스템이 현재의 논리블록과 연관되는 새로운 또는 변화된 데이터를 제공할때 얻어질 수 있다. 일단 업데이트가 얻어지면, 업데이트가 기록될 수 있는 "업데이트" 물리블록내에서 적절한 물리그룹이 이용가능한지의 여부에 대한 결정이 단계(508)에서 이루어진다. "업데이트" 물리블록은 현재의 논리블록과 연관된 업데이트된 또는새로운 정보를 포함하도록 배열되는 물리블록일 수 있고, 물리그룹의 수에 의하여 식별되는 그룹으로 분할되며 현재의 논리블록의 논리그룹에 각각 대응할 수 있다.
이용가능한 또는 적정 그룹이 존재하는 것으로 결정될때, 현재 그룹, 즉 기록될 가장 최근의 그룹이 업데이트를 위한 공간을 가지거나 또는 기록될 수 있는 새로운 그룹이 존재하는지에 대한 지시가 제공된다. 따라서, 프로세스 흐름은 업데이트가 "업데이트" 물리블록의 적절한 그룹에 기록되는 단계(512)쪽으로 진행한다. 전형적으로, 적정 그룹에 업데이트를 기록하는 것외에, 업데이트가 연관되는 논리그룹을 식별하는 식별자는 적정 그룹에 기록된다.
일단 업데이트가 적정 그룹에 기록되면, 현재 논리블록과 연관된 업데이트가 더 존재하는지에 관한 결정이 단계(516)에서 수행된다. 만일 현재 논리블록과 연관된 업데이트가 더 존재하는 것으로 결정되면, 프로세스의 흐름은 현재 논리블록과 연관된 다음 업데이트가 얻어지는 단계(504)로 리턴된다. 대안적으로, 만일 현재 논리블록과 연관된 업데이트가 더 존재하지 않는 것으로 결정되면, 현재 물리블록의 내용, 예컨대 현재 논리블록과 연관된 업데이트가 효율적으로 처리되기전에 현재의 논리블록과 연관되는 "오리지날" 내용을 포함하는 물리블록의 내용은 단계(520)에서 "업데이트" 물리블록의 내용과 적절하게 병합될 수 있다. 두개의 물리블록의 내용은 일 실시예에서 새로운 현재의 물리블록에 병합될 수 있다. 현재의 물리블록 및 "업데이트" 물리블록의 내용이 병합되거나 또는 분석된후에, 업데이트 또는 업데이트들을 기록하는 프로세스는 완료된다.
단계(508)로 리턴하면, 현재 논리블록과 연관된 현재의 업데이트가 기록될수 있는 "업데이트" 물리블록내에서 이용가능한 그룹이 존재하지 않는 것으로 결정되면, 프로세스의 흐름은 새로운 현재 물리블록이 얻어지는 단계(524)로 이동한다. 특히, 기술된 실시예에서, 현재 논리블록과 연관된 현재의 물리블록의 내용은 "업데이트" 물리블록, 즉 단일 물리블록의 내용과 적절히 병합되거나 분석된다. 일단 현재의 논리블록과 연관된 새로운 현재의 물리블록인 단일 물리블록이 현재의 논리블록과 연관된 가장 최근의 정보와 함께 기록되면, 현재의 논리블록과 연관된 업에이트가 저장될 수 있는 새로운 "업데이트" 물리블록은 단계(528)에서 얻어진다. 일 실시예에서, "업데이트" 물리블록을 얻는 단계는 현재의 물리블록의 업데이트 인덱스값에 관한 적정 값으로 새로운 "업데이트" 물리블록과 연관된 업데이트 인덱스를 세팅하는 단계를 포함할 수 있다.
새로운 "업데이트" 물리블록이 얻어진후에, 현재의 논리블록과 연관된 현재의 업데이트는 단계(532)에서 새로운 "업데이트" 물리블록내의 제 1그룹에 기록될 수 있다. 전형적으로, 업데이트는 업데이트가 연관되는 현재의 논리블록에서 논리블록을 식별하는 식별자와 함께 제 1물리그룹에 기록된다. 프로세스의 흐름은 현재의 논리블록과 연관된 업데이트가 더 존재하는지에 대한 결정이 이루어지는 단계(516)로 이동한다.
일반적으로, 전력관리블록을 실행하고 유지하며 이용하는 기능은 소프트웨어, 예컨대 비휘발성 메모리 또는 비휘발성 메모리 컴포넌트를 포함하는 호스트 시스템에 프로그램 코드 장치 또는 펌웨어로써 제공된다. 전력관리블록이 실행되고 유지되며 사용되도록 호스트 시스템에 제공되는 소프트웨어 또는 펌웨어와 연관된적정 시스템 구조의 일 실시예는 도 6에 도시되어 있다. 시스템 구조(700)는 애플리케이션 인터페이스 모듈(704), 시스템 관리자 모듈(708), 데이터 관리자 모듈(712), 데이터 보전성 관리자(716) 및 장치 관리자 및 인터페이스 모듈(720)을 포함할 수 있는(그러나 이에 제한되지 않음) 다양한 모듈을 포함한다. 일반적으로, 시스템 구조(700)는 프로세서, 예컨대 도 2a의 프로세서(108)에 의하여 액세스될 수 있는 펌웨어 또는 소프트웨어 코드 장치를 사용하여 실행될 수 있다.
일반적으로, 애플리케이션 인터페이스 모듈(704)은 초기화과정 또는 시스템 포맷 요구동안 미디어를 초기화하기 위하여 플래시 메모리(도시안됨)와 같은 비휘발성 메모리 또는 미디어와 통신하도록 구성될 수있다. 애플리케이션 인터페이스 모듈(704)은 미디어와 연관된 페이지, 클러스터 또는 섹터로부터 판독될 뿐만아니라 기록될 수 있다. 전형적으로, 미디어와 통신하는 것외에, 애플리케이션 인터페이스 모듈(704)은 시스템 관리자 모듈(708) 및 데이터 관리자 모듈(712)과 통신한다.
시스템 관리자 모듈(708)은 시스템 초기화 서브모듈(724), 소거 카운트 블록 관리 서브모듈(726), 및 전력 관리블록 서브모듈(730)을 포함한다. 시스템 초기화 서브모듈(724)은 일반적으로 초기화 요구가 처리되도록 구성되며 전형적으로 소거 카운트 블록 관리 서브모듈(726)과 통신한다. 소거 카운트 블록 관리 서브모듈(726)은 블록의 소거 카운트가 저장되도록 하는 기능, 및 평균 소거 카운트가 개별 소거 카운트를 사용하여 계산 뿐만아니라 업데이트되도록 하는 기능을 포함한다. 시스템 초기화 모듈(724)은 하나 내지 다수의 논리-물리블록 할당을 분석하도록 구성되며 업데이트 인덱스를 이용할 수있다.
애플리케이션 인터페이스 모듈(704)과 통신하는 것외에, 시스템 관리자 모듈(708)은 데이터 관리자 모듈(712) 뿐만아니라 장치 관리자 및 인터페이스 모듈(720)과 통신한다. 시스템 관리자 모듈(708) 및 애플리케이션 인터페이스 모듈(704)과 통신하는 데이터 관리자 모듈(712)은 논리 섹터를 물리 섹터로 효율적으로 변환하는 섹터 매핑을 제공하는 기능을 포함할 수있다. 즉, 데이터 관리자 모듈(712)은 논리블록을 물리블록에 매핑시킨다. 데이터 관리자 모듈(712)은 동작 시스템 및 파일 시스템 인터페이스 층과 연관된 기능을 포함할 수 있으며, 블록내의 그룹이 여기에 참조에 의하여 통합되는 공동계류중인 미국특허 출원번호 10/281,855에 개시된 바와같이 관리되도록 한다. 일 실시예에서, 데이터 관리자 모듈(712)은 아우트-오브-시퀀스 프로세스가 발생되도록 구성될 수 있다.
시스템 관리자 모듈(708), 데이터 관리자(712) 및 데이터 보전성 관리자(761)와 통신하는 장치 관리자 및 인터페이스 모듈(720)은 프래시 메모리 인터페이스를 제공하며, 하드웨어 개념, 예컨대 I/O 인터페이스와 연관된 기능을 포함한다. 데이터 보전성 관리자 모듈(716)은 다른 기능중 ECC 핸들링을 제공한다.
비록 본 발명의 몇몇 실시예가 기술되었을지라도, 본 발명은 본 발명의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형식으로 구현될 수 있다는 것을 이해해야 한다. 예로서, 아우트-오브-시퀀스 기록이 발생하도록 하는 그룹은 NAND 메모리, 예컨대 MLC NAND 메모리와 연관된 것으로 기술되었다. 그러나, 일반적으로 블록을 그룹으로 분할하는 아우트-오브-시퀀스 기록은 임의의 적정 메모리 또는 메모리 시스템과 관련하여 실행될 수있다.
업데이트 인덱스는 "업데이트" 물리블록 및 현재 물리블록이 분석되도록 할때 적합한 것으로 기술되었다. 그러나, 임의의 적절한 방법, 예컨대 업데이트 인덱스의 사용을 포함하지 않는 방법은 다수의 물리블록이 분석되도록 하기 위하여 사용될 수 있다.
본 발명의 다양한 방법과 연관된 단계들은 광범위하게 변화될 수 있다. 일반적으로, 단계들은 본 발명의 사상 또는 범위를 벗어나지 않고 추가, 제거, 기록 및 변경될 수 있다. 예컨대, 논리블록내의 특정 논리그룹과 연관된 업데이트가 "업데이트" 물리블록내의 적절한 물리그룹에 기록되고 업데이트가 물리그룹에 기록될 제 1 업데이트일때, 업데이트를 기록하는 단계는 논리그룹과 연관된 물리그룹을 식별하는 물리그룹에 식별자를 기록하는 단계를 포함할 수 있다. 지시자가 물리그룹의 임의의 페이지에 기록될 수 있는 반면에, 상기 지시자는 물리블록의 제 1페이지, 즉 시작 페이지에 기록된다. 지시자는 업데이트가 기록되기전에 기록될 수 있거나 또는 지시자는 업데이트와 동일한 시간에, 예컨대 업데이트가 물리그룹의 제 1페이지에 기록될때 기록될 수 있다는 것을 인식해야 한다. 따라서, 본 실시예는 단순히 설명을 위해서만 고려되었으며 본 발명의 제한하지 않는다. 또한 본 발명은 전술한 상세한 설명에 의하여 제한되지 않고 첨부된 청구범위내에서 수정될 수 있다.
본 발명은 MLC NAND와 같은 메모리 시스템에서의 물리블록의 물리 페이지가아우트-오브-시퀀스 방식으로 기록되도록 하여, 비휘발성 메모리 시스템의 메모리 자원을 보다 효율적으로 사용할 수 있는 효과를 가진다.

Claims (42)

  1. 메모리 유닛을 가진 비휘발성 메모리를 포함하는 비휘발성 메모리 시스템에서 기록동작을 수행하기 위한 방법으로서,
    상기 메모리 유닛은 논리 유닛과 연관되고 제 1 물리 서브유닛 및 제 2 물리 서브유닛을 포함하며, 상기 제 2 물리 서브유닛은 상기 제 1물리 서브유닛보다 상기 메모리 유닛 다음에 배치되며, 상기 논리유닛은 제 1 논리 서브유닛 및 제 2논리 서브유닛을 포함하며, 상기 제 2논리 서브유닛은 상기 제 1논리 서브유닛 다음에 배치되며, 상기 방법은,
    제 1 내용세트를 상기 제 1 물리 서브유닛에 기록하는 단계와;
    상기 제 1 내용세트가 상기 제 1물리 서브유닛에 기록된후에 제 2 내용세트를 상기 제 2 물리 서브유닛에 기록하는 단계를 포함하며, 상기 제 1내용세트는 상기 제 2 논리 서브유닛과 연관되며, 상기 제 2 내용세트는 상기 제 1 논리 서브유닛과 연관되는 기록동작 수행방법.
  2. 제 1항에 있어서, 상기 제 1 물리 서브유닛은 제 1 물리그룹의 일부이며, 상기 제 2 물리 서브유닛은 제 2 물리그룹의 일부이며, 상기 제 1물리그룹 및 상기 제 2 물리그룹은 상기 메모리 유닛과 연관되는 기록동작 수행방법.
  3. 제 2항에 있어서, 상기 제 2물리그룹은 다수의 서브유닛을 포함하며, 상기다수의 서브유닛은 상기 제 2 물리 서브유닛을 포함하며, 상기 제 2 내용세트가 상기 제 2 물리 서브유닛에 기록된후에 상기 제 2 물리그룹에 포함된 상기 다수의 서브유닛에 기록된 임의의 내용은 상기 제 1 논리 서브유닛 다음에 배치된 논리 서브유닛과 연관되는 기록동작 수행방법.
  4. 제 2항에 있어서, 상기 제 2 논리 서브유닛을 식별하도록 구성된 제 1 식별자를 상기 제 1물리그룹에 기록하는 단계와;
    상기 제 1논리 서브유닛을 식별하도록 구성된 제 2식별자를 상기 제 2물리그룹에 기록하는 단계를 더 포함하는 기록동작 수행방법.
  5. 제 1항에 있어서, 상기 메모리 유닛은 물리블록이며, 상기 논리유닛은 논리블록이며, 상기 제 1 물리 서브유닛은 제 1물리 페이지이며, 상기 제 2 물리 서브유닛은 제 2 물리 페이지이며, 상기 제 1 논리 서브유닛은 제 1 논리 페이지이며, 상기 제 2 논리 서브유닛은 제 2 논리 페이지인 기록동작 수행방법.
  6. 제 5항에 있어서, 상기 비휘발성 메모리는 플래시 메모리인 기록동작 수행방법.
  7. 제 6항에 있어서, 상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 기록동작 수행방법.
  8. 메모리 유닛을 포함하는 플래시 메모리 시스템에서 기록동작을 수행하기 위한 방법으로서,
    상기 메모리 유닛은 논리 유닛과 연관되고 제 1 물리 서브유닛 및 제 2 물리 서브유닛을 포함하며, 상기 제 2 물리 서브유닛은 상기 제 1 물리 서브유닛보다 상기 메모리 유닛다음에 배치되며, 상기 논리 유닛은 제 1 논리 서브유닛을 포함하며, 상기 방법은,
    제 1 물리 서브유닛에 제 1 내용세트를 기록하는 단계와;
    상기 제 1 내용세트가 상기 제 1물리 서브유닛에 기록된후에 상기 제 2물리 서브유닛에 제 2 내용세트를 기록하는 단계를 포함하며, 상기 제 1 내용세트 및 상기 제 2 내용세트는 상기 제 1논리 서브유닛과 연관되며, 상기 제 2 내용세트는 상기 제 1내용세트와 교환되는 기록동작 수행방법.
  9. 제 8항에 있어서, 상기 제 1 물리 서브유닛은 제 1 물리그룹의 일부분이며, 상기 제 2 물리 서브유닛은 제 2 물리그룹의 일부분이며, 상기 제 1 물리그룹 및 상기 제 2물리그룹은 메모리 유닛과 연관되는 기록동작 수행방법.
  10. 제 9항에 있어서, 상기 제 1논리 서브세트는 상기 논리유닛내의 제 1 논리그룹에 포함되며, 상기 방법은,
    상기 제 1물리그룹과 연관된 상기 제 1 논리그룹을 식별하는 상기 제 1 물리그룹에 제 1지시자를 기록하는 단계와;
    상기 제 2물리그룹과 연관된 상기 제 1논리그룹을 식별하는 상기 제 2 물리그룹에 제 2지시자를 기록하는 단계를 더 포함하는 기록동작 수행방법.
  11. 제 9항에 있어서, 상기 제 2물리그룹은 다수의 서브유니트를 포함하며, 상기 다수의 서브유닛은 상기 제 2물리 서브유닛을 포함하며, 상기 제 2내용세트가 상기 제 2물리 서브유닛에 기록된후에 상기 제 2물리그룹에 포함된 상기 다수의 서브유닛에 기록된 임의의 내용은 상기 제 1논리 서브유닛 다음에 배치된 논리 서브유닛과 연관되는 기록동작 수행방법.
  12. 제 8항에 있어서, 상기 메모리 유닛은 물리블록이며, 상기 논리유닛은 논리블록이며, 상기 제 1 물리 서브유닛은 제 1 물리 페이지이며, 상기 제 2 물리 서브유닛은 제 2 물리 페이지이며, 상기 제 1 논리 서브유닛은 제 1 논리 페이지인 기록동작 수행방법.
  13. 제 12항에 있어서, 상기 비휘발성 메모리는 플래시 메모리인 기록동작 수행방법.
  14. 제 13항에 있어서, 상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리인 기록동작 수행방법.
  15. 논리 유닛과 연관되고 제 1 물리 서브유닛 및 제 2 물리 서브유닛을 가진 메모리 유닛을 포함하는 비휘발성 메모리와 ―상기 제 2 물리 서브유닛은 상기 제 1물리 서브유닛 다음에 배치되며, 상기 논리 유닛은 제 1 논리 서브유닛 및 제 2 논리 서브유닛을 포함하며, 상기 제 2 논리 서브유닛은 상기 제 1 논리 서브유닛다음에 배치되며―;
    제 1 내용세트가 상기 제 1물리 서브유닛에 기록되도록 하는 코드장치와;
    상기 제 1내용세트가 상기 제 1물리 서브유닛에 기록된후에 제 2 내용세트가 상기 제 2 물리 서브유닛에 기록되도록 하는 코드장치와 ― 상기 제 1 내용세트는 상기 제 2 논리 서브세트와 연관되며, 상기 제 2 내용세트는 상기 제 1 논리 서브유닛 및 상기 제 2 논리 서브유닛중 하나와 연관되며 ―;
    상기 코드장치를 저장하는 메모리 부분을 포함하는 비휘발성 메모리 시스템.
  16. 제 15항에 있어서, 상기 제 2 내용세트는 상기 제 2논리 서브유닛과 연관되며, 상기 제 2내용세트는 상기 제 1 내용세트와 교환되도록 배열되는 비휘발성 메모리 시스템.
  17. 제 15항에 있어서, 상기 제 1물리 서브유닛은 제 1 물리그룹의 일부이며, 상기 제 2 물리 서브유닛은 제 2 물리그룹의 일부이며, 상기 제 1 물리그룹 및 상기 제 2 물리그룹은 상기 메모리 유닛과 연관되는 비휘발성 메모리 시스템.
  18. 제 17항에 있어서, 추가 내용이 상기 제 2물리그룹에 기억되도록 하는 코드장치를 더 포함하며, 상기 제 2 물리그룹은 다수의 서브유닛을 포함하며, 상기 다수의 서브유닛은 제 2 물리 서브유닛을 포함하며, 제 2 내용세트가 상기 제 2 물리 서브유닛에 기록된후에 상기 제 2 물리그룹에 포함된 다수의 서브유닛에 기록된 임의의 내용은 상기 제1 논리 서브유닛다음에 배치된 논리 서브유닛과 연관되는 비휘발성 메모리 시스템.
  19. 제 15항에 있어서, 상기 메모리 유닛은 물리블록이며, 상기 논리 유닛은 논리 블록이며, 상기 제 1물리 서브유닛은 제 1 물리 페이지이며, 상기 제 2 물리 서브유닛은 제 2 물리 페이지이며, 상기 제 1 논리 서브유닛은 제 1 논리 페이지이며, 상기 제 2 논리 서브유닛은 제 2 논리 페이지인 비휘발성 메모리 시스템.
  20. 제 19항에 있어서, 상기 비휘발성 메모리는 플래시 메모리인 비휘발성 메모리 시스템.
  21. 제 20항에 있어서, 상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 비휘발성 메모리 시스템.
  22. 논리 유닛과 연관되고 제 1 물리 서브유닛 및 제 2 물리 서브유닛을 가지는메모리 유닛을 포함하는 비휘발성 메모리와 ― 상기 제 2물리 서브유닛은 상기 제 1 물리 서브유닛보다 상기 메모리 유닛 다음에 배치되며, 상기 논리 유닛은 제 1 논리 서브유닛 및 제 2 논리 서브유닛을 포함하며, 상기 제 2 논리 서브유닛은 제 1 논리 서브유닛 다음에 배치되며 ―;
    제 1 내용세트가 상기 제 1 물리 서브유닛에 기록되도록 하는 수단과;
    상기 제 1 내용세트가 상기 제 1 물리 서브유닛에 기록된후에 제 2 내용세트가 상기 제 2 물리 서브유닛에 기록되도록 하는 수단을 포함하며;
    상기 제 1 내용세트는 상기 제 2 논리 서브유닛과 연관되며, 상기 제 2 내용세트는 상기 제 1 논리 서브유닛 및 상기 제 2 논리 서브유닛중 하나와 연관되는 비휘발성 메모리 시스템.
  23. 비휘발성 메모리내에 배치되고 제 1 논리그룹 및 제 2논리그룹을 가진 논리 메모리 유니트와 연관된 ― 상기 제 2논리그룹은 상기 논리 메모리 유닛내에서 상기 제 1 논리그룹다음에 배치되며 ― 물리 메모리 유닛으로서,
    제 1 물리그룹과;
    제 2 물리그룹과;
    상기 제 1물리그룹에 포함되고 제 1 내용세트를 포함하는 제 1 물리 서브유닛과 ― 상기 제 1 내용세트는 상기 제 2 논리그룹과 연관되며, 상기 제 2논리그룹과 연관된 상기 제 1내용세트를 식별하는 제 1 식별자는 상기 제 1물리그룹에 저장되며 ―;
    상기 제 2 물리그룹에 포함되고 제 2 내용세트를 포함하는 제 2물리 서브유닛을 포함하며, 상기 제 2내용세트는 상기 제 1논리그룹과 연관되며, 상기 제 1논리그룹과 연관된 제 2 내용세트를 식별하는 제 2 식별자는 상기 제 2 물리그룹에 저장되는 물리 메모리 유닛.
  24. 제 23항에 있어서, 상기 물리 메모리 유닛은 물리블록이며, 상기 논리 메모리 유닛은 논리블록이며, 상기 제 1 물리 서브세트는 제 1 물리 페이지이며, 상기 제 2 물리 서브유닛은 제 2 물리 페이지인 물리 메모리 유닛.
  25. 제 23항에 있어서, 상기 제 1물리그룹은 다수의 제 1 물리 서브유닛을 포함하며, 상기 제 2 물리그룹은 다수의 제 2 물리 서브유닛을 포함하며, 상기 제 1 식별자는 상기 제 1 물리그룹의 시작지점에 배치된 상기 다수의 제 1물리 서브유닛중 제 1 물리 서브유닛에 저장되며, 상기 제 2식별자는 상기 제 2물리 그룹의 시작지점에 배치된 상기 다수의 제 2물리 서브유닛의 제 2 물리 서브유닛에 저장되는 물리 메모리 유닛.
  26. 제 23항에 있어서, 상기 비휘발성 메모리는 플래시 메모리인 물리 메모리 유닛.
  27. 제 26항에 있어서, 상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND플래시 메모리중 하나인 물리 메모리 유닛.
  28. 논리블록과 연관된 내용을 메모리 시스템의 비휘발성 메모리에 포함된 물리블록을 제공하기 위한 방법으로서,
    상기 논리블록의 제 1논리그룹의 제 1논리 페이지와 연관된 제 1 내용세트를 얻는 단계와;
    상기 물리블록에 상기 제 1내용세트를 저장하는 단계를 포함하며, 상기 저장단계는 상기 물리블록의 제 1 물리그룹의 제 1물리 페이지에 상기 제 1내용세트를 저장하는 단계, 및 상기 제 1논리그룹과 연관된 상기 제 1내용세트를 식별하는 상기 제 1물리그룹에 지시자를 저장하는 단계를 포함하는 방법.
  29. 제 28항에 있어서, 상기 제 1물리그룹은 다수의 물리 페이지를 포함하며, 상기 다수의 물리 페이지는 시작 물리 페이지를 포함하며, 상기 시작 물리 페이지는 상기 제 1물리그룹의 시작지점에 배열되며, 상기 제 1물리 그룹에 상기 지시자를 저장하는 상기 단계는 상기 시작 물리 페이지에 상기 지시자를 저장하는 단계를 포함하는 방법.
  30. 제 28항에 있어서, 상기 논리블록과 연관된 제 2 내용세트를 얻는 단계와;
    상기 제 2 내용세트가 상기 제 1논리 그룹의 제 2 논리 페이지와 연관되고 상기 제 1 논리그룹의 제 2 논리 페이지가 상기 제 1 논리그룹의 제 1 논리페이지다음에 배치될때 상기 제 1물리 그룹에 상기 제 2 내용세트를 저장하는 단계를 더 포함하는 방법.
  31. 제 28항에 있어서, 상기 논리블록과 연관된 제 2 내용세트를 얻는 단계와;
    상기 제 2 내용세트가 상기 제 1논리 그룹의 제 1 논리 페이지와 연관될때 상기 물리블록의 제 2물리 그룹에 상기 제 2내용세트를 저장하는 단계와;
    상기 제 1논리그룹과 연관된 상기 제 2 내용세트를 식별하는 상기 제 2물리그룹에 식별자를 저장하는 단계를 더 포함하는 방법.
  32. 제 28항에 있어서, 상기 논리블록과 연관된 제 2 내용세트를 얻는 단계와;
    상기 제 2내용세트가 상기 논리블록의 제 2논리그룹의 제 2 논리 페이지와 연관될때 제 2 물리 그룹에 상기 제 2내용세트를 저장하는 단계와;
    상기 제 2논리그룹과 연관된 상기 제 2 내용세트를 식별하는 제 2 물리그룹에 지시자를 저장하는 단계를 포함하는 방법.
  33. 제 32항에 있어서, 상기 제 1논리그룹은 상기 논리블록의 제 2 논리 페이지 다음에 배치되며, 상기 제 2 물리그룹은 상기 물리블록의 제 1 물리그룹다음에 배치되는 방법.
  34. 제 28항에 있어서, 상기 비휘발성 메모리는 플래시 메모리인 방법.
  35. 제 34항에 있어서, 상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 방법.
  36. 논리블록의 제 1 논리그룹의 제 1 논리 페이지와 연관된 제 1 내용세트에 배열된 코드장치와;
    비휘발성 메모리의 물리블록에 제 1내용세트를 저장하기 위한 코드장치와 - 상기 물리블록의 제 1내용세트를 저장하기 위한 상기 코드장치는 상기 물리블록의 제 1 물리그룹의 제 1 물리 페이지에 상기 제 1내용세트를 저장하고 또한 상기 제 1논리 그룹과 연관된 상기 제 1내용세트를 식별하는 상기 제 1물리그룹에 지시자를 저장하며 ―;
    상기 코드장치를 저장하기 위한 저장장치를 포함하는 메모리 시스템.
  37. 제 36항에 있어서, 상기 제 1물리그룹은 다수의 물리 페이지를 포함하며, 상기 다수의 물리 페이지는 시작 물리 페이지를 포함하며, 상기 시작 물리 페이지는 상기 제 1물리그룹의 시작지점에 배치되며, 상기 제 1 물리그룹에 상기 지시자를 저장하기 위한 상기 코드장치는 상기 제 1물리 페이지에 상기 지시자를 저장하는 코드장치를 포함하는 메모리 시스템.
  38. 제 36항에 있어서, 상기 논리블록과 연관된 제 2 내용세트를 얻기 위한 코드장치와;
    상기 제 2내용세트가 상기 제 1논리그룹의 제 2논리 페이지와 연관되고 상기 제 1논리그룹의 제 2 논리 페이지가 상기 제 1논리그룹내의 제 1논리 페이지 다음에 배치될때 상기 제 1물리 그룹에 상기 제 2내용세트를 저장하기 위한 코드장치를 더 포함하는 메모리 시스템.
  39. 제 36항에 있어서, 상기 논리블록과 연관된 제 2 내용세트를 얻기 위한 코드장치와;
    상기 제 2내용세트가 상기 제 1논리그룹의 제 1논리 페이지와 연관될때 상기 물리블록의 제 2 물리 그룹에 상기 제 2 내용세트를 저장하기 위한 코드장치와;
    상기 제 1 논리그룹과 연관된 상기 제 2 내용세트를 식별하는 상기 제 2 물리그룹에 식별자를 저장하기 위한 코드장치를 포함하는 메모리 시스템.
  40. 제 36항에 있어서, 상기 논리블록과 연관된 제 2 내용세트를 얻기 위한 코드장치와;
    상기 제 2 내용세트가 상기 논리블록의 제 2 논리그룹의 제 2 논리 페이지와 연관될때 제 2 물리 그룹에 상기 제 2내용세트를 저장하기 위한 코드장치와;
    상기 제 2논리그룹과 연관된 상기 제 2내용세트를 식별하는 제 2 물리그룹에 지시자를 저장하기 위한 코드장치를 더 포함하는 메모리 시스템.
  41. 제 40항에 있어서, 상기 제 1 논리 페이지는 상기 논리블록의 제 2 논리 페이지 다음에 배치되며, 상기 제 2 물리그룹은 상기 물리블록의 상기 제 1물리그룹 다음에 배치되는 메모리 시스템.
  42. 제 36항에 있어서, 상기 코드장치는 소프트웨어 코드장치 및 펌웨어 코드장치중 한 장치인 메모리 시스템.
KR1020030075131A 2002-10-28 2003-10-27 비휘발성 메모리 시스템에서 아웃-오브-시퀀스 기록 프로세스를 효과적으로 수행하기 위한 방법 및 장치 KR100977899B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42172502P 2002-10-28 2002-10-28
US60/421,725 2002-10-28

Publications (2)

Publication Number Publication Date
KR20040038706A true KR20040038706A (ko) 2004-05-08
KR100977899B1 KR100977899B1 (ko) 2010-08-24

Family

ID=32094172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030075131A KR100977899B1 (ko) 2002-10-28 2003-10-27 비휘발성 메모리 시스템에서 아웃-오브-시퀀스 기록 프로세스를 효과적으로 수행하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US7526599B2 (ko)
EP (1) EP1416386A3 (ko)
JP (1) JP4424965B2 (ko)
KR (1) KR100977899B1 (ko)
CN (1) CN100538659C (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101270685B1 (ko) * 2007-08-24 2013-06-03 삼성전자주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법
KR20140091665A (ko) * 2011-07-05 2014-07-22 칸도우 랩스 에스에이 비휘발성 메모리의 차동 벡터 저장
KR20160055723A (ko) * 2013-07-31 2016-05-18 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 버저닝된 메모리 구현
KR20180097441A (ko) * 2017-02-23 2018-08-31 웨스턴 디지털 테크놀로지스, 인코포레이티드 비차단 제어 업데이트 동작을 수행하도록 구성되는 데이터 저장 디바이스
US11288201B2 (en) 2017-02-23 2022-03-29 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
TWI232466B (en) * 2003-10-28 2005-05-11 Prolific Technology Inc Method for updating data of non-volatile memory
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
TW200608201A (en) * 2004-04-28 2006-03-01 Matsushita Electric Ind Co Ltd Nonvolatile storage device and data write method
TWI254205B (en) * 2004-11-01 2006-05-01 Benq Corp Bidirectional data storing method
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
EP1913463A2 (en) * 2005-08-03 2008-04-23 SanDisk Corporation Management of memory blocks which directly store data files
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
JP4661497B2 (ja) * 2005-09-27 2011-03-30 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
TW200732913A (en) * 2006-02-24 2007-09-01 Benq Corp Memory allocation method and system
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
EP1873641B1 (en) * 2006-06-29 2009-08-19 Incard SA Compression method for managing the storing of persistent data from a non volatile memory to a backup buffer
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7739444B2 (en) * 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
JP5083757B2 (ja) * 2007-04-19 2012-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データをキャッシュする技術
JP4210318B1 (ja) * 2007-11-28 2009-01-14 株式会社京都ソフトウェアリサーチ データ格納システムおよびデータ格納プログラム
TWI425523B (zh) * 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
KR101574540B1 (ko) * 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
WO2010134300A1 (ja) * 2009-05-21 2010-11-25 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8266325B2 (en) * 2010-02-05 2012-09-11 International Business Machines Corporation Compression on thin provisioned volumes using extent based mapping
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
CN103577330B (zh) * 2012-07-27 2018-09-11 中兴通讯股份有限公司 一种内容存储方法及装置
US9268682B2 (en) * 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US20140281194A1 (en) 2013-03-15 2014-09-18 Seagate Technology Llc Dynamically-sizeable granule storage
US9645924B2 (en) 2013-12-16 2017-05-09 International Business Machines Corporation Garbage collection scaling
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9778864B2 (en) * 2015-03-10 2017-10-03 SK Hynix Inc. Data storage device using non-sequential segment access and operating method thereof
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
US11294827B2 (en) 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces

Family Cites Families (32)

* 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
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp., Santa Clara EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
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
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5488711A (en) * 1993-04-01 1996-01-30 Microchip Technology Incorporated Serial EEPROM device and associated method for reducing data load time using a page mode write cache
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5930815A (en) 1995-07-31 1999-07-27 Lexar Media, Inc. Moving sequential sectors within a block of information in a flash memory mass storage architecture
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
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
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11203191A (ja) * 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
US6182239B1 (en) * 1998-02-06 2001-01-30 Stmicroelectronics, Inc. Fault-tolerant codes for multi-level memories
KR100297986B1 (ko) * 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6260156B1 (en) * 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
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
JP2002175211A (ja) * 2000-12-07 2002-06-21 Sharp Corp データ管理システムおよびデータ管理方法
US6970890B1 (en) * 2000-12-20 2005-11-29 Bitmicro Networks, Inc. Method and apparatus for data recovery

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101270685B1 (ko) * 2007-08-24 2013-06-03 삼성전자주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법
KR20140091665A (ko) * 2011-07-05 2014-07-22 칸도우 랩스 에스에이 비휘발성 메모리의 차동 벡터 저장
KR20160055723A (ko) * 2013-07-31 2016-05-18 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 버저닝된 메모리 구현
KR20180097441A (ko) * 2017-02-23 2018-08-31 웨스턴 디지털 테크놀로지스, 인코포레이티드 비차단 제어 업데이트 동작을 수행하도록 구성되는 데이터 저장 디바이스
US11288201B2 (en) 2017-02-23 2022-03-29 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase

Also Published As

Publication number Publication date
KR100977899B1 (ko) 2010-08-24
JP4424965B2 (ja) 2010-03-03
JP2004164633A (ja) 2004-06-10
EP1416386A3 (en) 2006-10-25
CN100538659C (zh) 2009-09-09
US20040103241A1 (en) 2004-05-27
US7526599B2 (en) 2009-04-28
EP1416386A2 (en) 2004-05-06
CN1499530A (zh) 2004-05-26

Similar Documents

Publication Publication Date Title
KR100977899B1 (ko) 비휘발성 메모리 시스템에서 아웃-오브-시퀀스 기록 프로세스를 효과적으로 수행하기 위한 방법 및 장치
US7039788B1 (en) Method and apparatus for splitting a logical block
US7254668B1 (en) Method and apparatus for grouping pages within a block
US7559004B1 (en) Dynamic redundant area configuration in a non-volatile memory system
US7188228B1 (en) Hybrid mapping implementation within a non-volatile memory system
US8250286B2 (en) Block management method, and storage system and controller using the same
US6973531B1 (en) Tracking the most frequently erased blocks in non-volatile memory systems
US7526600B2 (en) Data management device and method for flash memory
US20040083334A1 (en) Method and apparatus for managing the integrity of data in non-volatile memory system
US20100042775A1 (en) Block management method for flash memory, and storage system and controller using the same
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
US11513949B2 (en) Storage device, and control method and recording medium thereof
US9213631B2 (en) Data processing method, and memory controller and memory storage device using the same
US9009442B2 (en) Data writing method, memory controller and memory storage apparatus
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
US7234036B1 (en) Method and apparatus for resolving physical blocks associated with a common logical block
KR20020092261A (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
WO2004040454A2 (en) Method and apparatus for performing multi-page write operations in a non-volatile memory system
CN113096713B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
US8122183B2 (en) Data managing method for flash memory and flash memory device using the same

Legal Events

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

Payment date: 20130723

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140721

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee