KR20040017215A - 플렉시블 플래시 파일 시스템을 위한 시스템 및 방법 - Google Patents

플렉시블 플래시 파일 시스템을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20040017215A
KR20040017215A KR10-2003-7014688A KR20037014688A KR20040017215A KR 20040017215 A KR20040017215 A KR 20040017215A KR 20037014688 A KR20037014688 A KR 20037014688A KR 20040017215 A KR20040017215 A KR 20040017215A
Authority
KR
South Korea
Prior art keywords
physical
unit
virtual
block
memory
Prior art date
Application number
KR10-2003-7014688A
Other languages
English (en)
Other versions
KR100882862B1 (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 KR20040017215A publication Critical patent/KR20040017215A/ko
Application granted granted Critical
Publication of KR100882862B1 publication Critical patent/KR100882862B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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

Abstract

플래시 메모리 디바이스가 플래시 디스크로서 데이터를 보다 효율적으로 저장하는데 사용될 수 있도록, 플래시 메모리 디바이스를 보다 유연성있게 관리하기 위한 시스템 및 방법. 본 발명은 상이한 사이즈의 삭제 유닛이 삭제될 수 있게 함으로써 종래의 방법에 대하여 개선점을 제공한다. 바람직하게는, 본 발명은 또한 복수의 상이한 삭제 유닛 사이즈로 메모리를 삭제할 수 있는 플래시 메모리 디바이스로 작동되고, 보다 바람직하게는 삭제를 위하여 가장 효율적인 삭제 유닛 사이즈를 선택할 수 있다. 본 발명은 삭제 및/또는 데이터를 플래시 메모리 디바이스에/로 기록/판독하기 위한 가장 효율적인 방법을 선택하기 위하여 선택적으로 및 보다 바람직하게 복수의 상이한 결정룰을 사용할 수 있다. 가장 바람직하게는, 본 발명은 복수의 상이한 타입의 플래시 메모리 기술로 자동적으로 작동할 수 있기 위하여, 플래시 메모리 디바이스의 성능을 감지할 수 있다.

Description

플렉시블 플래시 파일 시스템을 위한 시스템 및 방법{SYSTEM AND METHOD FOR FLEXIBLE FLASH FILE SYSTEM}
플래시 메모리는 플래시 타입으로되고, 플로팅 게이트 트랜지스터인 이이피롬(EEPROM : electrically erasable and programmable read only memories)을 포함하는데 이것은 이피롬(EPROM)메모리와 유사한 기능과 성능을 가지고, 부가적으로 메모리의 일부를 삭제하기 위한 인서킷, 프로그램가능 동작이 가능한 비휘발성 메모리이다. 플래시 디바이스는 종래의 자기 저장 디스크에 비하여 비교적 적은 전력을 요하고 비교적 저렴하다는 이점을 가지고 있다. 그러나, 플래시 디바이스에서, 이전에 기록된 메모리 영역을 삭제하지 않고 그 기록된 영역에 재기록하는 것은 불가하다. 이러한 플래시 메모리의 한계는 플래시 메모리내의 기록된 영역에서 먼저 데이터가 삭제되지 않으면 데이터가 기록될 수 없으므로, 전형적인 기존의 운영 시스템 프로그램과는 호환될 수 없게 한다.
운영 시스템 프로그램의 수정없이 플래시 디바이스가 기존 컴퓨터 운영 프로그램에 의하여 관리될 수 있게 하는 소프트웨어 제품들이 종래 소개되었다. 그러나, 이러한 제품들은 모두 결점을 가지고 있었다. 예컨대, 그 중 하나의 프로그램은 플래시 메모리를 "일기록 다판독"으로서 작동시킨다. 이 소프트웨어 제품은 이전에 기록된 메모리 위치를 재활용할 수 없다. 결국 모든 위치가 기록되면 그 메모리는 특정한 사용자의 개입없이는 더이상 사용될 수 없다. 종래의 이러한 결점을 극복하기 위하여, 플래시 파일 시스템(FFS)이 본 출원과 함께 소유되고 본 명세서에 참조로서 그 전부가 첨부되어 있는, 미국 특허 제 5,404,485호에 개시되어 있다. FFS는 플래시 디바이스가 자기 디스크를 에뮬레이팅할 수 있게하는 플래시 디바이스상의 데이터 저장 시스템 및 조작을 제공했다. 상기한 바와 같이, 플래시 디바이스의 비교적 저렴한 비용과 저전력 소비는 플래시 디바이스를 특히, 랩톱이나, 휴대형 컴퓨터용 데이터 저장장치로서 좋은 선택이되게 한다. FFS는 자기 디스크 저장장치를 위한 대체물로서 역할하도록 플래시 디바이스의 성능을 개선한다. 실제로, 미국 특허 제 5,404,485 호에 개시된 FFS는 꽤 유용함이 입증되었고 데이터 레이아웃 스펙은 FTL(Flash Translation Layer)로 불리는 표준으로서 PCMCIA(Personal Computer Memory Card International Association) 및 JEIDA(Japan Electronic Industry Development Association)에 의하여 채택되었다.
FFS는 필수적으로 플래시 이이피롬 디바이스를 위한 가상 매핑 시스템을 기술한다. 가상 매핑은 플래시 디바이스내의 판독/기록 블록의 물리적 주소를 블록의 가상 주소에 연관짓는 테이블이다. 이러한 블록의 각각은 512바이트로 비교적작기때문에, 가상맵 그자체의 크기는 꽤 크다. FFS는 또한 플래시 이이피롬 디바이스상에 가상맵의 벌크를 유지하고 저장하는 방법을 포함하고, 가상맵의 저장을 위해 필요한 다른 메모리의 양을 최소화한다.
상기한 바와 같이, FFS는 산업 표준으로 채택될 만큼, 플래시 디바이스를 자기 디스크 저장장치의 에뮬레이터로 트랜스포밍하는데 특히 성공적임이 입증되었다. 그러나, FFS는 보다 새로운 플래시 디바이스의 모든 필요조건을 충족시킬수는 없다. 특히, FFS는 NAND 및 AND플래시 기술에는 성공적이지 않다. 따라서 본 출원과 함께 소유되고 본 명세서에 참조로서 그 전부가 첨부되어 있는 미국 특허 제 5,937,425 호는 이러한 기술을 위한 플래시 파일 시스템의 부가적인 구현물을 기술한다. 그러나, 이러한 구현물은 주로 특정한 타입의 플래시 메모리 기술을 위해 유용하다.
예컨대, 몇몇 새로운 플래시 메모리 디바이스는 운영 소프트웨어가 단일 삭제 동작으로 삭제되는 메모리 일부의 정확한 크기를 선택할 수 있게 한다. 전통적인 플래시 디바이스는 단일 삭제동작으로 삭제될 수 있는 데이터 청크를 정의하는 단일 크기의 삭제 존을 가지고있다. 이 크기는 전형적으로 수십 킬로바이트 범위에 있다. 하나 이상의 그러한 삭제 존 사이즈를 가지는 새로운 플래시 디바이스가 있다. 예컨대, Silicon Storage Technology Inc.사의 SST34HF162X 및 SST34HF164X 콘커런트 슈퍼플래시 디바이스는 1KWord섹터나 또는 32KWord블록을 삭제하기 위하여 제공된다. 또한 Saifun Semiconductors Ltd.사에 의해 개발된 NROM플래시 기술이 두개의 허용가능 사이즈의 군으로 부터 삭제된 일부의 크기를 선택할 수 있는이러한 성능을 가지고 있다. 이러한 잉여의 선택의 자유는 종래 기술을 개선시키기 위하여 이용될 수 있다.
본 발명은 복수의 상이한 타입의 플래시 디바이스상에서 데이터 저장을 처리하기 위한 시스템 및 방법에 관한 것이고, 특히 플래시 디스크로서 작동할 수 있는 상이한 사이즈의 삭제가능 유닛 및/또는 판독/기록 유닛을 가지는 플래시 디바이스상에 정보의 저장과 검색을 관리하는 시스템 및 방법에 관한 것이다.
도 1은 본 발명에 따른 물리적 플래시 메모리 디바이스의 개략도, 및
도 2는 본 발명에 따른 플래시 메모리 디바이스를 조직화하는 기초 시스템의 다이어그램.
종래 기술은 복수의 상이한 타입의 플래시 메모리 기술상에서 플래시 데이터를 관리하기 위한 메커니즘을 교시하거나 제안하지 않는다. 또한 종래 기술은 이러한 상이한 타입의 기술로 보다 효율적으로 동작할 수 있고 매우 플렉시블한 메커니즘을 교시하거나 제안하지 않는다.
본 발명은 상이한 타입의 플래시 메모리 기술에 대하여 적합한 메모리 조직 방법을 제공함으로써 종래 기술의 결점을 극복한다.
이후부터, "물리적 유닛"은 삭제될 수 있는 메모리의 가장 작은 일부 또는 그 정수배인 메모리의 하드웨어 또는 물리적 매체상에 있는 유닛으로 정의된다. 그것은 인접하고, 크기가 고정되어 있고 삭제가능한 메모리의 일부이다. "물리적 블록"은 기록 또는 판독데이터를 위한 메모리의 일부인 것으로서 정의된다.
이후부터, "가상 유닛"은 물리적 유닛과 동일한 사이즈로 정의된다.
이후부터, "가상맵"은 가상 유닛을 적어도 하나의 대응 물리적 유닛에 연관짓는 테이블을 칭한다. 상기한 바와 같이, 각각의 가상 유닛 또는 물리적 유닛은 복수의 블록으로 구성된다. 유닛내의 블록의 정확한 위치는 이후에 기술될 바와 같이 하나 이상의 소정의 룰에 따라 결정된다.
각각의 물리적 유닛은 물리적 유닛 번호에 의하여 지시된다. 각각의 물리적 블록의 위치는 물리적 블록 오프세트에 의하여 주어진다. 마찬가지로, 각각의 가상 유닛은 가상 유닛 번호에 의하여 지시된다. 각각의 가상 블록의 위치는 가상 블록 오프세트에 의하여 주어진다. 각각의 가상 유닛 번호는 하나 이상의 물리적 유닛 번호에 대응할 수 있음을 주목하여야 한다. 따라서, 가상 유닛과 물리적 유닛사이의 매핑은 일대일 또는 일대다일 수 있다.
이후부터, "데이터 기록"은 플래시 메모리상에서 데이터를 저장하는 동작을 나타낸다. "데이터 판독"은 플래시 메모리로 부터 데이터를 검색하는 동작을 나타낸다. 이후부터, "기록되지 않은"은 데이터가 기록될 수 있는, 물리적 블록과 같은 메모리의 몇몇 일부를 나타낸다. 따라서, "기록되지 않은"이란 용어는 삭제되었던 메모리의 일부, 여기에 제한되지는 않고,를 포함한다.
본 발명에 따라 조직된 플래시 메모리를 구비한 컴퓨터 또는 다른 전자 디바이스에서, 그 디바이스의 운영 시스템은 데이터의 판독과 기록을 위하여 가상 유닛과 가상 블록과 상호작용한다. 따라서 가상 유닛과 가상 블록을 포함하는 가상 매체는 플래시 메모리 디바이스와 상호작용하기 위하여 운영 시스템을 위한 인터페이스로 역할한다. 예컨대, 운영 시스템은 가상 블록 오프세트으로 가상 블록에 데이터를 기록하기 위한 기록 커맨드를 발생시킨다. 그 다음에 가상 블록을 포함하는 가상 유닛이 위치된다. 그 다음에 가상맵은 데이터가 실제로 저장되는 메모리의 물리적 유닛내의 대응 물리적 블록을 위치시킨다. 운영 시스템이 가상 유닛과 가상 블록이 플래시 메모리의 실제 하드웨어인것 처럼 판독 및 기록 커맨드를 발생시켜도, 실제로는 실제 하드웨어는 플래시 메모리의 물리적 유닛과 물리적 블록에 부가된다. 따라서 운영 시스템은 가상 유닛과 가상 블록만을 지각하고, 직접적으로하드웨어 그 자체와 상호작용하지는 않는다.
이러한 인터페이스의 이점은 추가 기록전에 삭제해야하는것과 같은 플래시 메모리 본래의 결점이 가상 메모리와 같은 운영 시스템의 상호작용에 의하여 극복되는것이다. 또한, 전자 디바이스의 운영 시스템은 플래시 메모리의 주소를 조직화할 필요가 없다. 더욱이, 운영 시스템은 하나의 인터페이스가 복수의 타입의 플래시 메모리 디바이스에 사용될 수 있으므로, 광범위한 수정의 필요없이 다양한 상이한 플래시 메모리 기술과 상호작용할 수 있다. 따라서, 본 발명의 방법은 플래시 메모리 디바이스와 그것을 사용하는 전자 디바이스를 위한 가장 큰 유연성을 허용한다.
본 발명에 따라, 데이터가 메모리의 기록되지 않은 부분에만 기록될 수 있고, 따라서 메모리의 기록된 부분은 기록되지 않도록 하기 위하여 삭제되어야하는 메모리를 위한 메모리 조직 방법이 제공되고, 상기 메모리는 데이터를 판독하거나 기록하기 위한 복수의 메모리 부분을 구비하고, 데이터를 판독하거나 기록하기위한 복수의 메모리 부분의 각각은 일정한 사이즈를 가지고, 상기 방법은; 하나의 동작에서 삭제가능하도록 메모리의 메모리부분의 사이즈를 제공하는 단계로서, 삭제를 위한 메모리 부분의 사이즈는 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 동일한 적어도 하나의 사이즈를 포함하고 또한 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 상이하게 되는 적어도 하나의 사이즈를 포함하는 사이즈 군으로 부터 선택될 수 있는 상기 단계, 복수의 물리적 유닛의 메모리를 제공하는 단계로서, 상기 물리적 유닛의 각각은 물리적 유닛 번호에 의하여 지시되고 상기 물리적 유닛의 각각은 복수의 물리적 블록으로 나뉘고, 복수의 물리적 블록의 각각은 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈로 되고 상기 물리적 블록의 각각은 상기 물리적 유닛내의 물리적 블록 오프세트에 의하여 지시되고, 상기 물리적 유닛의 사이즈는 상기 선택가능 삭제 사이즈중 하나와 동일한 사이즈 그러나 판독이나 기록을 위한 메모리 부분의 사이즈가 아닌 사이즈와 동일하거나, 또는 대안으로 상기 선택가능 삭제 사이즈중 하나의 정수배와 동일한 사이즈인, 상기 단계; 상기 메모리의 복수의 가상 유닛을 제공하는 단계로서, 각각의 가상 유닛은 가상 유닛 번호에 의하여 지시되고 복수의 가상 블록을 특징으로 하는 가상 유닛의 각각은 가상 유닛내의 가상 블록 오프세트에 의하여 지시되는 상기 단계; 가상맵을 형성하기 위하여 각각의 가상 유닛을 적어도 하나의 물리적 유닛에 매핑하는 단계; 및 가상 유닛내의 각각의 가상 블록을 적어도 하나의 물리적 유닛내의 하나의 물리적 블록에 매핑하는 단계를 포함한다.
본 발명의 또다른 실시예에 따라, 메모리의 기록되지 않은 부분에만 기록될 수 있고 따라서 메모리의 기록된 부분은 기록되지 않도록 삭제되어야하며 하나의 동작에서 삭제될 수 있는 메모리 부분의 사이즈는 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 상이한 메모리를 위한 메모리 조직 방법이 제공되고,상기 방법은: 복수의 물리적 유닛의 메모리를 제공하는 단계로서, 상기 물리적 유닛의 각각은 삭제를 위한 가장 작은 메모리 부분의 정수배와 동일한 사이즈를 가지고, 상기 물리적 유닛의 각각은 물리적 유닛 번호에 의하여 지시되고 상기 물리적 유닛의 각각은 복수의 물리적 블록으로 나뉘고, 상기 복수의 물리적 블록의 각각은데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈가 되고 상기 물리적 블록의 각각은 물리적 유닛내의 물리적 블록 오프세트에 의하여 지시되는 상기 단계; 복수의 가상 유닛의 메모리를 제공하는 단계로서, 각각의 가상 유닛은 가상 유닛 번호에 의하여 지시되고 복수의 가상 블록을 특징으로 하는 가상 유닛의 각각은 가상 유닛내의 가상 블록 오프세트에 의하여 지시되는 상기 단계; 가상맵을 형성하기 위하여 각각의 가상 유닛을 적어도 하나의 물리적 유닛에 매핑하는 단계; 및 가상 유닛내의 각각의 가상 블록을 가상맵에 따른 적어도 하나의 물리적 유닛내의 하나의 물리적 블록에 매핑하는 단계를 포함한다.
본 발명의 또다른 실시예에 따라, 데이터가 메모리의 기록되지 않은 부분에만 기록될 수 있고, 따라서 메모리의 기록된 부분은 기록되지 않도록 삭제되어야 하는 메모리를 위한 메모리 조직 방법이 제공되고, 하나의 동작에서 삭제될 수 있는 메모리 부분의 사이즈는 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 동일한 적어도 하나의 사이즈를 포함하고 또한 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈 보다 큰 적어도 하나의 사이즈를 포함하는 사이즈 군으로 부터 선택될 수 있는, 상기 방법은, 복수의 물리적 유닛의 메모리를 제공하는 단계로서, 물리적 유닛의 각각은 상기 선택가능한 삭제 사이즈중 하나와 동일하나 판독이나 기록을 위한 메모리 부분의 사이즈가 아닌 사이즈이고 또는 선택가능한 삭제 사이즈중 임의의 것의 정수배와 동일한 사이즈이고, 물리적 유닛의 각각은 물리적 유닛 번호에 의하여 지시되고 물리적 유닛의 각각은 복수의 물리적 블록으로 나뉘고, 복수의 물리적 블록의 각각은 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈가 되고 물리적 블록의 각각은 물리적 유닛내의 물리적 블록 오프세트에 의하여 지시되는, 상기 단계; 복수의 가상 유닛의 메모리를 제공하는 단계로서, 각각의 가상 유닛은 가상 유닛 번호에 의하여 지시되고 복수의 가상 블록을 특징으로 하는 가상 유닛의 각각은 가상 유닛내의 가상 블록 오프세트에 의하여 지시되는, 상기 단계; 가상맵을 형성하기 위하여 각각의 가상 유닛을 적어도 하나의 물리적 유닛에 매핑하는 단계; 및 가상 유닛내의 각각의 가상 블록을 적어도 하나의 물리적 유닛내의 하나의 물리적 블록에 매핑하는 단계를 포함한다.
본 발명의 또다른 실시예에 따라, 데이터가 기록되지 않은 물리적 메모리 위치에만 기록될 수 있고 연속한 메모리 위치의 존이 동시에 삭제될 수 있는 메모리를 위한 메모리 관리 방법이 제공되고, 상기 방법은: 메모리를 복수의 유닛으로 조직화하는 단계, 각각의 유닛을 복수의 블록으로 조직화하는 단계로서, 블록의 각각은 복수의 연속하는 물리적 메모리 위치로 구성되어 있는, 상기 단계; 기록된, 기록되지 않은 또는 삭제된 것으로서 유닛에서의 각각의 블록의 상태를 지시하는 각각의 유닛에 대한 할당 맵을 설정하는 단계; 물리적 주소에 가상 주소를 매핑시키는 가상맵을 설정하는 단계; 가상 주소로 메모리에 데이터를 기록함에 있어서, : 가상 주소를 가상맵을 사용하여 물리적 주소에 매핑하는 단계, ; 가상 주소가 기록된, 기록되지 않은, 또는 삭제된 것으로서 매핑된 물리적 블록의 상태를 결정하기 위하여 가상 주소가 매핑되어 있는 물리적 유닛에 대한 할당맵을 검사하는 단계, ; 물리적 블록이 기록되거나 삭제된 상태이면, 이하의 2 프로시져중 하나를 선택하는 단계, ; 여기서, 제 1 프로시져는, : 기록되지 않은 물리적 블록을 식별하기 위하여 유닛중 적어도 하나에 대한 할당맵을 검사하는 단계, ; 데이터를 기록되지 않은 물리적 블록에 대한 메모리에 기록하는 단계, ; 데이터가 기록되었던 이전에 기록되지 않은 블록을 기록된 것으로서 지시하도록 데이터가 기록되었던 유닛에 대한 할당맵을 변경하는 단계, ; 및 가상맵이 가상 주소를 데이터가 기록되었던 이전에 기록되지 않은 블록의 물리적 주소에 매핑하도록 가상맵을 변경하는 단계를 포함하고, 제 2 프로시져는, : 가상 주소가 매핑되었던 물리적 블록을 삭제하는 단계, ; 데이터를 물리적 블록에 기록하는 단계, ; 물리적 블록이 이전에 유닛 할당맵에서 삭제된 것으로서 마킹되었다면, 데이터가 기록되었던 이전에 삭제된 블록을 기록된 것으로서 지시하도록 데이터가 기록되었던 유닛에 대한 할당맵을 변경하는 단계를 포함한다.
이하에서 본 발명은 단지 예로써 첨부된 도면을 참조하여 기술된다.
본 발명은 플래시 메모리 디바이스를 보다 유연하게 관리하기위한 시스템 및 방법이고, 이러한 플래시 메모리 디바이스는 플래시 디스크로서 데이터를 저장하는 데 보다 효율적으로 사용될 수 있다. 본 발명은 상이한 사이즈의 삭제 유닛이 삭제될 수 있게함으로써 종래의 방법에 대하여 개선점을 제공한다. 바람직하게는,본 발명은 또한 복수의 상이한 삭제 유닛 사이즈에서 메모리를 삭제할 수 있는 플래시 메모리 디바이스로 작동되고, 보다 바람직하게는 삭제를 위한 가장 효율적인 삭제 유닛 사이즈를 선택할 수 있다. 본 발명은 선택적으로 및 보다 바람직하게 플래시 메모리 디바이스에 데이터를 판독/기록 및/또는 삭제를 위한 가장 효율적인 방법을 선택하도록 복수의 상이한 결정룰을 사용할 수 있다. 가장 바람직하게는, 본 발명은 복수의 상이한 타입의 플래시 메모리 기술에 대해 자동적으로 동작되도록 플래시 메모리 디바이스의 성능을 탐지할 수 있다.
선택적으로 및 바람직하게는, 본 발명은 디바이스의 임의의 삭제 존보다 사이즈가 큰 물리적 유닛으로 작동한다. 삭제 유닛이 종종 동일한 사이즈에 머무르는 반면, 플래시 디바이스는 점점 더 높은 용량을 가지므로 이러한 특징은 매우 바람직하다. 물리적 유닛이 항상 삭제 존의 사이즈이면, 디바이스당 유닛의 수는 증가한다. 이것은 다시 가상의 주소를 물리적 주소로 변환하기 위하여 필요한 매핑 테이블의 사이즈를 증가시키고, 결과적으로 상기 플래시 디바이스를 지원하기위해 필요한 소프트웨어 디바이스 드라이버의 컴퓨터 메모리 풋프린트를 증가시킨다. 물리적 유닛이 가장 큰 삭제 유닛 사이즈의 정수배가 될 수 있게 함으로써, 디바이스당 유닛의 수는 감소된다. 이것은 다시, 매핑 테이블의 사이즈를 감소시키고 결과적으로 소프트웨어 디바이스 드라이버의 컴퓨터 메모리 풋프린트를 감소시킨다.
결정룰을 사용하는 본 발명의 바람직한 실시예에 대하여, 바람직하게는, 새로운 데이터가 이미 기록되었거나 기록되었었고 후에 삭제된 블록에 기록되어야할때 결정점에 도달한다. 이때 기록되지 않은 메모리 공간을 기록되도록 항상 할당하는 원래의 방법에 의하여 사용된 프로시져, 및 "적당한 기록" 전략을 수행하는 부가적인 프로시져사이에서 결정하는 결정룰이 선택적으로 및 바람직하게 도입된다.
채용된 결정룰은 임의의 종류의 임의의 룰일 수 있다. 이러한 룰(사용될 수 있는 룰의 타입 및 일반성에 임의의 제한을 부과함이 없이, 명확한 설명을 위하여 제공되는 리스트)의 예는 이하의 룰을 포함하지만 이것에 제한되지 않는다. 하나의 결정룰은 선택적으로, 메모리의 몇몇 기록되지 않은 부분의 할당을 요하는 제 1 프로시져의 선택이 먼저 메모리의 몇몇 부분을 재활용시키지 않고 가능한지 여부에 달려있다. 이것은 이러한 재활용 동작의 수를 최소화하도록 사용될 수 있으므로 유용한 룰일 수 있다.
또다른 이러한 룰은 실질적으로 동시에 기록되어야 하는 플래시 메모리에서 동일한 물리적 근접부내의 데이터 블록의 수에 의존할 수 있다. 이것은 보다 큰 사이즈의 삭제 동작과 연관된 오버헤드가 그 모두가 동일한 재활용 영역을 이용하고 따라서 제 1 프로시져를 제 2 프로시져보다 짧게 되게 하는 몇몇 블록 기록 동작사이에 공유되므로 유용한 룰일 수 있다.
또다른 결정룰은 물리적 블록을 삭제하기 위해 필요한 시간 및/또는 물리적 유닛을 삭제하기 위하여 필요한 시간에 의존할 수 있다. 이것은 최적의 해법을 선택하기 위한 주된 고려점이 타이밍 성능에 기초하기 때문에 유용한 룰일 수 있다.
또다른 결정룰은 기록될 데이터의 값에 의존할 수 있다. 이것은 몇몇 플래시 디바이스에서 데이터를 플래시에 기록하는 데에 필요한 시간은 데이터 값에 따라 변하므로(즉, "1"비트 대 "0"비트의 수에 의존한다), 유용한 룰일 수 있다.
또다른 결정룰은 데이터가 기록될 물리적 주소에 의존적일 수 있고, 따라서 물리적 디바이스는 별개의 섹션으로 나뉘는데, 그 각각은 상이한 기록 방법을 사용한다. 대안으로, 결정룰은 데이터가 기록될 가상 주소에 따라 동작할 수 있고, 따라서 가상 디바이스가 별개의 섹션으로 나뉠 수 있게하고, 그 각각은 상이한 기록 정책을 사용한다.
또다른 결정룰은 요청을 결정하기 위한 랜덤값에 의존하므로, 두 프로시져의 각각을 선택할 상대적 확율이 두 프로시져의 이익사이에 균형을 지지하는 혼합된 정책을 발생할 수 있게 한다.
이 결정룰에서의 변화는 선택된 프로시져의 결정적인 혼합을 제공하므로, 총 선택 횟수에 대한 백분율은 두 프로시져중 하나가 될 것이다. 이러한 변화는 또한 혼합된 방식을 위하여 제공한다, 그러나 소정의 고정비율에 따른다.
또다른 결정룰은 각각의 물리적 블록과 관련된 카운터의 값에 따라 동작하고, 상기한 물리적 블록이 삭제된 횟수를 카운트한다. 몇몇 플래시 디바이스에서 작은 삭제 청크가 에워싸고 있는 보다 큰 삭제 청크를 삭제하기 전에 삭제될 수 있는 횟수는 제한적이고, 그 조건은 이 룰에 의해 처리된다.
간단한 결정룰은 또한 특정 결정이 항상, 예컨대 디바이스의 플래시 메모리 기술이 그 자체로 특정한 타입의 동작에 제한될때, 사용되도록 요청받을 수 있다.
본 발명은 플래시 메모리에 관하여 기술된 한편, 당업자는 그 교시는 또한 플래시 메모리와 동일한 기록, 판독, 및 유닛 삭제 특성을 가지는 데이터 저장 디바이스에 적용될 수 있음을 이해할 것이다.
본 발명에 따른 시스템 및 방법의 원리와 동작은 첨부한 도면을 참조하여 보다 잘 이해될 수 있다.
도 1 을 참조하면, 도 1은 예컨대, NAND와 같은 기술에 따른 종래의 물리적 페이지 모드의 플래시 메모리 디바이스를 개략적으로 나타낸다. "물리적 디바이스"는 이후부터 플래시 메모리 디바이스를 위한 물리적 매체를 포함하는 실제적인 하드웨어 그자체로 정의된다. 이러한 물리적 매체는 임의의 적당한 비휘발성, 프로그램가능 메모리 디바이스가 대체될 수 있더라도 전형적으로 플래시 이이피롬 유닛으로 구성된다. "프로그램가능"이란 이후부터 예컨대, 데이터가 메모리 디바이스에 기록되게함으로써와 같은, 변경가능한것으로 정의된다.
적어도 하나의 물리적 유닛(12)을 가진 플래시 메모리 물리적 디바이스(10)가 나타난다. 물리적 유닛(12)은 삭제될 수 있는 물리적 디바이스(10)의 가장 작은 세그먼트이거나, 정수배이고 물리적 유닛(12)은 개별적으로 블록 1 내지 n으로 지시되고, 여기서 n은 정수이다, 집합적으로 블록(14)으로 지시된 블록의 정수배를 포함한다. 블록(14)은 물리적 바이트 주소의 인접하고, 고정된 길이의 그룹으로 구성되고 하드웨어 구조이다. 상세하게는, 블록(14)의 사이즈는 물리적 디바이스(10)의 특성이다. 사용자 데이터는 블록(14)의 프라이머리 데이터 영역(16)에 저장될 수 있다. 각각의 블록(14)은 또한 제어 데이터 영역(18)을 가진다. 제어 데이터 영역(18)은 블록(14)의 주된 부분으로 부터 개별 알고리즘에 의하여 어드레싱가능하고 블록(14)의 사이즈의 계산에 포함되지 않는다. 이하에더 기술된 바와 같이, 제어 데이터 영역(18)은 플래시 파일링 시스템 그 자 체와 관련된 정보의 저장을 위해 편리하다. 각각의 물리적 유닛(12)은 배당된 유닛이거나 배당되지 않은 유닛이다. 각각의 배당되지 않은 유닛은 자유롭고, 유용한 데이터를 포함하지 않고 용이하게 할당되고 배당된다. 각각의 배당된 유닛이 할당되었고 데이터를 포함한다.
도 2는 기초 플래시 메모리 디바이스를 조직화하기 위한 시스템을 나타낸다. 시스템(20)은 가상 매체(22)와 물리적 디바이스(10)를 제어하고, 가상 매체(22)를 가상맵(24)을 통하여 물리적 디바이스(10)에 연관짓는다. 가상 매체(22)는 복수의 가상 유닛(26)을 포함한다. 각각의 가상 유닛(26)은 복수의 가상 블록(28)을 포함한다. 각각의 가상 유닛(26)은 가상 주소에 의하여 지시된다. 가상 주소는 가상 유닛 번호를 포함하고, 이것은 특정한 가상 유닛(26)을 지시한다. 각각의 가상 블록(28)은 가상 블록 오프세트에 의하여 지시된다. 마찬가지로, 각각의 물리적 유닛(12)은 물리적 주소를 가진다. 물리적 주소는 물리적 유닛 번호를 포함하고, 특정한 물리적 유닛(12)을 지시한다. 각각의 물리적 블록(14)은 물리적 블록 오프세트을 가진다.
가상맵(24)은 배당된 가상 유닛인 가상 유닛(26)을 배당된 물리적 유닛인 적어도 하나의 물리적 유닛(12)에 매핑한다. 물리적 유닛에 관하여, 가상 유닛이 적어도 하나의 물리적 유닛에 매핑되었다면, 그거은 배당된 가상 유닛이다. 그러나, 하나의 가상 유닛(26)이 하나 이상의 물리적 유닛(12)에 매핑될 수 있다. 따라서 가상 유닛(26)과 물리적 유닛(12)의 대응관계는 일대일이나 일대다일 수 있다.
시스템(20)은 이하와 같이 동작한다. (도시되지 않은)플래시 메모리 디바이스를 포함하는 전자 디바이스의 운영 시스템은 특정한 가상 유닛(26)내의 특정한 가상 블록(28)에 판독 커맨드 또는 기록 커맨드와 같은 커맨드를 보낸다. 그 다음에 가상맵(24)은 물리적 유닛(12)내의 대응 물리적 블록(14)을 위치시킨다.
매핑의 대응관계가 도시된바와 같이 각각의 가상 유닛(26)이 정확하게 하나의 물리적 유닛(12)에 매핑되는 일대일이면, 상황은 비교적 단순하게 나타난다. 그러나, 상기한 바와 같이, 물리적 디바이스(10)는 부가적인 데이터가 기록될 수 있기전에 주기적인 삭제를 수행하기 위한 필요조건을 포함하여, 데이터를 판독하고 기록하기 위한 특정한 물리적인 구속을 가지고 있다.
예컨대, 물리적 디바이스(10)와 같은 플래시 디바이스에 데이터를 기록하기 위하여, 가상 주소를 물리적 주소에 매핑하기 위한 전형적인 방법이 선택적으로 수행될 수 있다. 도 2에 관하여 기술된 바와 같이, 가상맵은 각각의 가상 유닛을 적어도 하나의 물리적 유닛에 매핑하는 것을 저장한다. 플래시 디바이스(또는 다른 타입의 메모리)는 데이터가 메모리의 기록되지 않은 부분에만 기록될 수 있는 특성을 가진다고 가정되고, 따라서 기록된 메모리의 부분은 상이한 데이터가 메모리에 기록될 수 있기 전에 삭제되었었다. 더욱이, 메모리는 그 각각이 특정 사이즈를 가지는 데이터의 판독이나 기록을 위한 복수의 메모리 부분을 가지도록 가정된다.
선택적으로 및 바람직하게, 하나의 동작에서 삭제될 수 있는 메모리 부분의 사이즈는 결정된다. 이러한 사이즈는 특정 메모리 디바이스의 특성에 본질적이고, 사실 디바이스는 하나의 사이즈이상에서 일부를 삭제할 수 있기 때문에 선택적으로복수의 사이즈일 수 있다. 가장 바람직하게는, 삭제가능 메모리 부분의 사이즈는 예컨대 메모리 디바이스의 타입을 감지함으로써, 또는 대안으로 이 정보가 메모리 디바이스를 운영하는 컴퓨터의 운영 시스템에 의해 제공되도록 함으로써 감지된다. 임의의 경우에, 본 발명의 방법은 이러한 복수의 상이한 사이즈의 삭제가능 부분을 처리할 수 있다. 이러한 복수의 상이한 사이즈는 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 동일한 적어도 하나의 사이즈 및 또한 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 상이한 적어도 하나의 사이즈를 포함한다.
또한, 본 발명(및 또한 이전에 기술된 바와 같은)의 방법의 운영을 위하여, 메모리의 각각의 물리적 유닛은 물리적 유닛 번호에 의하여 지시되고 또한 복수의 물리적 블록으로 나뉜다는 것을 주목해야 한다. 각각의 물리적 블록은 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈이고 각각의 물리적 블록은 물리적 유닛내의 물리적 블록 오프세트에 의하여 지시된다. 물리적 유닛의 사이즈는 삭제 사이즈(삭제가능 메모리 부분의 사이즈)중 하나와 사이즈에서 동일하거나, 그러나 판독이나 기록을 위한 메모리 부분의 사이즈는 아닌, 대안으로 삭제 사이즈중 하나의 정수배와 동일한 사이즈이다.
매핑의 목적을 위하여, 메모리의 복수의 가상 유닛은 각각 가상 유닛 번호에 의하여 지시된다. 각각의 가상 유닛은 가상 유닛내의 가상 블록 오프세트에 의하여 지시된, 복수의 가상 블록을 특징으로 한다. 실제적인 매핑은 가상맵을 형성하기 위하여 각각의 가상 유닛을 적어도 하나의 물리적 유닛에 매핑함으로써 수행된다. 다음에, 가상 유닛내의 각각의 가상 블록은 적어도 하나의 물리적 유닛내의 하나의 물리적 블록에 매핑된다.
다음에, 기록 커맨드는 데이터를 가상 블록에 기록하도록 선택적으로 및 바람직하게 수신된다. 이러한 커맨드가 수신되었다면, 이러한 가상 블록을 포함하는 가상 유닛이 위치된다. 기록되지 않은 블록은 가상 유닛에 매핑된 물리적 유닛내에 위치되고 데이터는 기록되지 않은 물리적 블록에 기록된다.
그러나, 가상 유닛에 매핑된 물리적 유닛내의 물리적 블록이 위치될 수 없다면, 이하의 두 프로시져중 하나가 선택적으로 및 보다 바람직하게 선택된다. 바람직하게는 제 1 프로시져는 기록되지 않은 부가적인 물리적 유닛을 위치시키고 그 다음에 데이터를 부가적인 기록되지 않은 물리적인 유닛의 기록되지 않은 물리적 블록에 기록함으로써 수행된다. 그 다음에 가상맵은 가상 유닛을 부가적인 기록되지 않은 물리적 유닛에 부가적으로 매핑함으로써 업데이트되고, 따라서 가상 유닛은 부가적인 기록되지 않은 물리적 유닛 및 적어도 하나의 기록된 물리적 유닛에 대응한다. 따라서, 부가적인 기록되지 않은 물리적 유닛과 기록된 물리적 유닛은 물리적 유닛의 사슬을 형성한다.
바람직하게는, 제 2 및 대안의 프로시져는 가상 유닛에 매핑된 물리적 유닛내의 기록된 물리적 블록을, 물리적 블록에 매핑되는 가상 블록으로 위치시킴으로써 수행된다. 그 다음에, 물리적 블록은 삭제된다. 그 다음에, 데이터는 물리적 블록에 기록된다.
선택은 선택적으로 고정될 수 있고, 따라서 제 1 또는 제 2 프로시져가 항상선택된다. 그러나, 선택적으로 및 보다 바람직하게는, 선택은 예컨대 먼저 메모리의 몇몇 부분을 재활용해야만함이 없이 제 1 프로시져를 선택할때 부가적인 기록되지 않은 물리적 유닛이 위치될 수 있는지 여부와 같은 룰에 의존한다. 대안으로 또는 부가적으로, 선택은 실질적으로 동시에 기록되는 동일한 가상 유닛내의 가상 블록의 수에 의존한다. 또한 선택적으로 또는 부가적으로, 선택은 물리적 블록을 삭제하기 위해 필요한 시간과 물리적 유닛을 삭제하기 위하여 필요한 시간중 적어도 하나에 의존한다.
또한 선택적으로 또는 부가적으로, 선택은 기록될 데이터에 의존한다. 또한 선택적으로 또는 부가적으로, 선택은 물리적 블록이 거주하는 물리적 유닛 번호에 의존한다. 또한 선택적으로 또는 부가적으로, 선택은 가상 블록이 거주하는 가상 유닛 번호에 의존한다. 또한 선택적으로 또는 부가적으로, 선택은 선택된 프로시져의 확율비를 제공하기 위한 랜덤값에 의존한다. 이러한 결정룰의 변화는 선택된 프로시져의 결정적인 혼합을 제공하고, 따라서 선택의 전체수의 고정된 퍼센티지는 두 프로시져중 하나가 된다. 이 변화는 또한 정책의 혼합에 대하여 제공한다, 그러나 소정의 고정비율에 따른다. 또한 선택적으로 또는 부가적으로, 방법은 물리적 블록이 삭제되는 시간의 수를 카운트하기 위하여, 각각의 물리적 블록과 연관된 카운터를 할당하는 것을 더 특징으로 할 수 있다. 그 다음에, 제 2 프로시져가 선택되면, 기록될 물리적 블록과 연관된 카운터는 증가된다. 선택적으로 및 보다 바람직하게는, 선택은 물리적 블록에 연관된 카운터에 의존한다.
선택적으로 및 가장 바람직하게는, 물리적 유닛내의 물리적 블록은 물리적블록 오프세트을 가지고 있고, 물리적 블록 오프세트은 매핑된 가상 블록의 가상 블록 오프세트보다 상이할 수 있다.
본 발명의 또다른 바람직한 실시예에 따라, 그 방법은 제 1 프로시져가 선택되면 그리고 기록되지 않은 부가적인 물리적 유닛이 위치될 수 없으면, 사슬에서 복수의 물리적 유닛에 대응하는 제 2 가상 유닛이 위치되도록 프로시져를 더 특징으로 한다. 그 다음에, 사슬에서 마지막 물리적 유닛이 위치되고, 데이터는 마지막 물리적 유닛을 제외하고, 사슬의 각각의 물리적 유닛의 각각의 기록된 물리적 블록으로 부터 마지막 물리적 유닛의 기록가능한 물리적 블록까지 이동한다. 그 다음에, 가상맵은 가상 유닛을 마지막 물리적 유닛에 매핑함으로써 업데이트되고, 따라서 가상 유닛은 마지막 물리적 유닛에만 대응한다. 사슬에서 마지막 물리적 유닛을 제외하고 기록된 물리적 유닛의 전부가 삭제된다.
본 발명의 임의적인 실시예에 따라, 물리적 유닛이 삭제될때 적어도 데이터를 일시적으로 홀딩하기 위한 전달 유닛이 제공된다. 전달 유닛은 바람직하게는 거기에 기록된 임의의 데이터를 가지지 않는 물리적 유닛이고, 따라서 그것은 또다른 물리적 유닛의 데이터를 홀딩할 수 있다. 이 후자의 물리적 유닛의 데이터는 전달 유닛에 전달되고, 그 다음에 후자의 물리적 유닛은 삭제된다. 전달 유닛은 선택적으로 및 보다 바람직하게는 기록되었던 전달 유닛의 그러한 블록을 나타내는, 연관된 할당맵을 가지고 있다.
상기 실시예는 단지 예로서만 제공되고, 많은 다른 실시예가 본 발명의 사상과 범위내에서 가능함이 이해될 것이다.

Claims (41)

  1. 데이터가 메모리의 기록되지 않은 부분에만 기록될 수 있고, 따라서 메모리의 기록된 부분은 기록되지 않도록 삭제되어야 하고, 데이터를 삭제하거나 기록하기 위한 그 각각이 사이즈를 갖는 복수의 메모리 부분을 가지는 메모리에 대한 메모리 조직 방법에 있어서, 상기 방법은,
    하나의 동작으로 삭제가능하도록 메모리의 메모리 부분의 사이즈를 제공하는 단계로서, 삭제를 위한 메모리 부분의 상기 사이즈는 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 동일한 적어도 하나의 사이즈를 포함하는 사이즈 및 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈와 상이한 적어도 하나의 사이즈를 또한 포함하는 사이즈 군으로 부터 선택가능한 단계,
    복수의 메모리의 물리적 유닛을 제공하는 단계로서, 상기 물리적 유닛의 각각은 물리적 유닛 번호에 의하여 지시되고 상기 물리적 유닛의 각각은 복수의 물리적 블록으로 나뉘고, 상기 복수의 물리적 블록의 각각은 데이터를 판독하거나 기록하기위한 메모리 부분의 사이즈가 되고 상기 물리적 블록의 각각은 상기 물리적 유닛내의 물리적 블록 오프세트에 의하여 지시되고, 상기 물리적 유닛의 사이즈는 상기 선택가능 삭제 사이즈중 하나의 사이즈와 동일하나 판독이나 기록을 위한 메모리 부분의 사이즈는 아니거나 대안으로서 상기 선택가능 삭제 사이즈중 하나의 정수배와 동일한 사이즈인 단계,
    복수의 메모리의 가상 유닛을 제공하는 단계로서, 각각의 가상 유닛은 가상유닛 번호에 의하여 지시되고 복수의 가상 블록을 특징으로 하는 상기 가상 유닛의 각각은 상기 가상 유닛내의 가상 블록 오프세트에 의하여 지시되는 단계,
    가상맵을 형성하기 위하여 각각의 가상 유닛을 적어도 하나의 물리적 유닛으로 매핑하는 단계, 및
    상기 가상 유닛내의 각각의 가상 블록을 적어도 하나의 물리적 유닛내의 하나의 물리적 블록에 매핑하는 단계를 포함하는 것을 특징으로 하는 메모리 조직 방법.
  2. 제 1 항에 있어서,
    가상 블록에 데이터를 기록하기 위하여 기록 커맨드를 수신하는 단계,
    상기 가상 블록을 포함하는 가상 유닛을 위치시키는 단계,
    상기 가상 유닛에 매핑된 물리적 유닛내의 기록되지 않은 블록을 위치시키는 단계, 및
    상기 기록되지 않은 물리적 블록에 상기 데이터를 기록하는 단계를 더 포함하는 것을 특징으로 하는 메모리 조직 방법.
  3. 제 2 항에 있어서,
    상기 가상 유닛에 매핑된 물리적 유닛내의 기록되지 않은 물리적 블록이 상기 가상 블록을 상기 물리적 블록에 매핑하기 위하여 위치될 수 없으면,
    기록되지 않은 부가적 물리적 유닛을 위치시키고,
    상기 데이터를 상기 부가적인 기록되지 않은 물리적 유닛의 기록되지 않은 물리적 블록에 기록시키고, 그리고
    상기 가상 유닛이 물리적 유닛의 사슬을 형성하는 상기 부가적인 기록되지 않은 물리적 유닛 및 상기 적어도 하나의 기록된 물리적 유닛에 대응하도록, 상기 가상 유닛을 상기 부가적인 기록되지 않은 물리적 유닛에 부가적으로 매핑함으로써 상기 가상맵을 업데이트하는 것을 포함하는 제 1 프로시져, 및
    상기 물리적 블록에 매핑되는 상기 가상 블록으로 상기 가상 유닛에 매핑된 물리적 유닛내의 기록된 물리적 블록을 위치시키고,
    상기 물리적 블록을 삭제하고, 그리고
    상기 물리적 블록에 상기 데이터를 기록하는 제 2 프로시져중 하나를 선택하는 것을 특징으로 하는 메모리 조직 방법.
  4. 제 3 항에 있어서, 상기 제 1 프로시져는 항상 선택되는 것을 특징으로 하는 메모리 조직 방법.
  5. 제 3 항에 있어서, 상기 제 2 프로시져는 항상 선택되는 것을 특징으로 하는 메모리 조직 방법.
  6. 제 3 항에 있어서, 상기 선택은 상기 제 1 프로시져를 선택할때 상기 부가적인 기록되지 않은 물리적 유닛이 위치될 수 있는지 여부에 의존하는 것을 특징으로하는 메모리 조직 방법.
  7. 제 3 항에 있어서, 상기 선택은 실질적으로 동시에 기록되도록 동일한 상기 가상 유닛내의 상기 가상 블록의 수에 의존하는 것을 특징으로 하는 메모리 조직 방법.
  8. 제 3 항에 있어서, 상기 선택은 물리적 블록을 삭제하기 위해 필요한 시간 및 물리적 유닛을 삭제하기 위해 필요한 시간 중 적어도 하나에 의존하는 것을 특징으로 하는 메모리 조직 방법.
  9. 제 3 항에 있어서, 상기 선택은 기록될 상기 데이터에 의존하는 것을 특징으로 하는 메모리 조직 방법.
  10. 제 3 항에 있어서, 상기 선택은 상기 물리적 블록이 거주하는 물리적 유닛 수에 의존하는 것을 특징으로 하는 메모리 조직 방법.
  11. 제 3 항에 있어서, 상기 선택은 상기 가상 블록이 거주하는 가상 유닛 번호에 의존하는 것을 특징으로 하는 메모리 조직 방법.
  12. 제 3 항에 있어서, 상기 선택은 랜덤값에 의존하는 것을 특징으로 하는 메모리 조직 방법.
  13. 제 3 항에 있어서, 상기 제 1 및 제 2 프로시져의 각각은 전체 선택의 고정된 퍼센티지로 선택되는 것을 특징으로 하는 메모리 조직 방법.
  14. 제 3 항에 있어서,
    상기 물리적 블록이 삭제되는 시간의 수를 카운트하기 위하여, 각각의 물리적 블록과 연관된 카운터를 할당하는 단계, 및
    상기 제 2 프로시져가 선택되면, 기록될 상기 물리적 블록과 연관된 상기 카운터를 증가시키는 단계를 더 포함하는 것을 특징으로 하는 메모리 조직 방법.
  15. 제 13 항에 있어서, 상기 선택은 상기 물리적 블록과 연관된 상기 카운터에 의존하는 것을 특징으로 하는 메모리 조직 방법.
  16. 제 1 항에 있어서, 상기 적어도 하나의 물리적 유닛내의 상기 물리적 블록은 물리적 블록 오프세트을 가지고, 상기 물리적 블록 오프세트은 상기 매핑된 가상 블록의 상기 가상 블록 오프세트과 항상 동일한 것을 특징으로 하는 메모리 조직 방법.
  17. 제 1 항에 있어서, 상기 적어도 하나의 물리적 유닛내의 상기 물리적 블록은물리적 블록 오프세트을 가지고, 상기 물리적 블록 오프세트은 상기 매핑된 가상 블록의 상기 가상 블록 오프세트과 상이할 수 있는 것을 특징으로 하는 메모리 조직 방법.
  18. 제 3 항에 있어서,
    상기 제 1 프로시져가 선택되면 그리고 기록되지 않은 부가적 물리적 유닛이 위치될 수 없으면, 사슬내의 복수의 물리적 유닛에 대응하는 제 2 가상 유닛을 위치시키는 단계,
    상기 사슬내의 마지막 물리적 유닛을 위치시키는 단계,
    상기 마지막 물리적 유닛을 제외하고 상기 사슬의 상기 물리적 유닛의 각각의 각각의 기록된 물리적 블록으로 부터 상기 마지막 물리적 유닛의 기록가능한 물리적 블록까지 이동하는 단계,
    상기 가상 유닛이 상기 마지막 물리적 유닛에만 대응하도록, 상기 마지막 물리적 유닛에 상기 가상 유닛을 매핑함으로써 상기 가상맵을 업데이트하는 단계, 및
    상기 마지막 물리적 유닛을 제외하고, 상기 사슬내의 상기 기록된 물리적 유닛의 전부를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 메모리 조직 방법.
  19. 데이터가 메모리의 기록되지 않은 부분에만 기록될 수 있고, 따라서 메모리의 기록된 부분은 기록되지않게 되기 위하여 삭제되어야 하고, 하나의 동작으로 삭제될 수 있는 상기 메모리 부분의 사이즈는 데이터를 판독하거나 기록하기 위한 상기 메모리 부분의 사이즈와 상이한 메모리에 대한 메모리 조직 방법에 있어서, 상기 방법은,
    복수의 메모리의 물리적 유닛을 제공하는 단계로서, 상기 물리적 유닛의 각각은 삭제를 위한 가장 작은 메모리 부분의 정수배와 동일한 사이즈를 가지고, 상기 물리적 유닛의 각각은 물리적 유닛 번호에 의하여 지시되고 상기 물리적 유닛의 각각은 복수의 물리적 블록으로 나뉘고, 상기 복수의 물리적 블록의 각각은 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈이고 상기 물리적 블록의 각각은 상기 물리적 유닛내의 물리적 블록 오프세트에 의하여 지시되는 단계,
    복수의 메모리의 가상 유닛을 제공하는 단계로서, 각각의 가상 유닛은 가상 유닛 번호에 의하여 지시되고 복수의 가상 블록을 특징으로 하는 상기 가상 유닛의 각각은 상기 가상 유닛내의 가상 블록 오프세트에 의하여 지시되는 단계,
    가상맵을 형성하기 위하여 적어도 하나의 물리적 유닛에 각각의 가상 유닛을 매핑하는 단계, 및
    상기 가상맵에 따라 상기 적어도 하나의 물리적 유닛내의 하나의 물리적 블록에 상기 가상 유닛내의 각각의 가상 블록을 매핑하는 단계를 포함하는 것을 특징으로 하는 메모리 조직 방법.
  20. 제 19 항에 있어서,
    가상 블록으로 데이터를 기록하기 위하여 기록 커맨드를 수신하는 단계,
    상기 가상 블록을 포함하는 가상 유닛을 위치시키는 단계,
    상기 가상 유닛에 매핑된 물리적 유닛내의 기록되지 않은 블록을 위치시키는 단계, 및
    상기 기록되지 않은 물리적 블록에 상기 데이터를 기록하는 단계를 더 포함하는 것을 특징으로 하는 메모리 조직 방법.
  21. 제 20 항에 있어서,
    상기 가상 유닛에 매핑된 물리적 유닛내의 기록되지 않은 물리적 블록이 상기 물리적 블록에 매핑되는 상기 가상 블록을 일으킬 방식으로 위치될 수 없으면, 기록되지 않은 부가적인 물리적 유닛을 위치시키는 단계,
    상기 부가적인 기록되지 않은 물리적 유닛의 기록되지 않은 물리적 블록에 상기 데이터를 기록하는 단계, 및
    상기 가상 유닛이 물리적 유닛의 사슬을 형성하는 상기 부가적인 기록되지 않은 물리적 유닛 및 상기 적어도 하나의 기록된 물리적 유닛에 대응하도록, 상기 부가적인 기록되지 않은 물리적 유닛에 상기 가상 유닛을 부가적으로 매핑함으로써 상기 가상맵을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 메모리 조직 방법.
  22. 제 19 항에 있어서, 상기 적어도 하나의 물리적 유닛내의 상기 물리적 블록은 물리적 블록 오프세트을 가지고, 상기 물리적 블록 오프세트은 상기 매핑된 가상 블록의 상기 가상 블록 오프세트에 항상 동일한 것을 특징으로 하는 메모리 조직 방법.
  23. 제 19 항에 있어서, 상기 적어도 하나의 물리적 유닛내의 상기 물리적 블록은 물리적 블록 오프세트을 가지고, 상기 물리적 블록 오프세트은 상기 매핑된 가상 블록의 상기 가상 블록 오프세트보다 상이할 수 있는 것을 특징으로 하는 메모리 조직 방법.
  24. 제 21 항에 있어서,
    기록되지 않은 부가적 물리적 유닛이 위치될 수 없으면, 사슬에서 복수의 물리적 유닛에 대응하는 제 2 가상 유닛을 위치시키는 단계,
    상기 사슬에서 마지막 물리적 유닛을 위치시키는 단계,
    상기 마지막 물리적 유닛을 제외하고 상기 사슬의 상기 물리적 유닛의 각각의 각각의 기록된 물리적 블록으로 부터 상기 마지막 물리적 유닛의 기록가능 물리적 블록까지 데이터를 이동하는 단계,
    상기 가상 유닛이 상기 마지막 물리적 유닛에만 대응하도록, 상기 가상 유닛을 상기 마지막 물리적 유닛에 매핑함으로써 상기 가상맵을 업데이트하는 단계, 및
    상기 마지막 물리적 유닛을 제외하고, 상기 사슬에서 상기 기록된 물리적 유닛의 전부를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 메모리 조직 방법.
  25. 데이터가 메모리의 기록되지 않은 부분에만 기록될 수 있고, 따라서 메모리의 기록된 부분은 기록되지 않게 되기 위하여 삭제되어야 하고, 하나의 동작에서 삭제될 수 있는 상기 메모리 부분의 사이즈는 데이터를 판독하거나 기록하기 위한 상기 메모리 부분의 사이즈에 동일한 적어도 하나의 사이즈를 포함하고 또한 데이터를 판독하거나 기록하기 위한 메모리 부분의 사이즈보다 큰 적어도 하나의 사이즈를 포함하는 사이즈 군으로 부터 선택가능한 메모리에 대한 메모리 조직 방법에 있어서, 상기 방법은,
    복수의 메모리의 물리적 유닛을 제공하는 단계로서, 상기 물리적 유닛의 각각은 상기 선택가능 삭제 사이즈중 하나의 사이즈에 동일하나 판독이나 기록을 위한 메모리 부분의 사이즈는 아니거나 상기 선택가능 삭제 사이즈중 어느것에 정수배와 동일한 사이즈이고, 상기 물리적 유닛의 각각은 물리적 유닛 번호에 의하여 지시되고 상기 물리적 유닛의 각각은 복수의 물리적 블록으로 나뉘고, 상기 복수의 물리적 블록의 각각은 데이터를 판독하거나 기록하기위한 메모리 부분의 사이즈이고 상기 물리적 블록의 각각은 상기 물리적 유닛내의 물리적 블록 오프세트에 의하여 지시되는 단계,
    메모리의 복수의 가상 유닛을 제공하는 단계로서, 각각의 가상 유닛은 가상 유닛 번호에 의하여 지시되고 복수의 가상 블록을 특징으로 하는 상기 가상 유닛의 각각은 상기 가상 유닛내의 가상 블록 오프세트에 의하여 지시되는 단계,
    가상맵을 형성하기 위하여 적어도 하나의 물리적 유닛에 각각의 가상 유닛을 매핑하는 단계, 및
    상기 적어도 하나의 물리적 유닛내의 하나의 물리적 블록에 상기 가상 유닛내의 각각의 가상 블록을 매핑하는 단계를 포함하는 것을 특징으로 하는 메모리 조직 방법.
  26. 데이터가 기록되지 않은 물리적 메모리 위치에만 기록될 수 있고 인접 메모리 위치의 존은 동시에 삭제될 수 있는 메모리에 대한 메모리 관리 방법에 있어서, 상기 방법은,
    메모리를 복수의 유닛으로 조직하는 단계,
    각각의 유닛을 복수의 블록으로 조직하는 단계로서, 상기 블록의 각각은 복수의 인접한 물리적 메모리 위치로 구성되어 있는 단계,
    기록되거나, 기록되지않거나 또는 삭제된 것으로서 상기 유닛에 각각의 블록의 상태를 지시하는 각각의 유닛에 대한 할당맵을 설정하는 단계,
    가상 주소를 물리적 주소로 매핑하기 위하여 가상맵을 설정하는 단계를 포함하고,
    가상 주소로 상기 메모리에 데이터를 기록함에 있어서,
    상기 가상맵을 사용한 물리적 주소에 상기 가상 주소를 매핑하는 단계,
    기록되거나, 기록되지않거나, 삭제된 것으로서 상기 가상 주소가 매핑되었던 물리적 블록의 상태를 결정하도록 상기 가상 주소가 매핑되었던 물리적 유닛에 대한 상기 할당맵을 검사하는 단계,
    상기 물리적 블록이 기록되거나 삭제된 상태이면,
    기록되지 않은 물리적 블록을 식별하기 위하여 상기 유닛중 적어도 하나에 대한 상기 할당맵을 검사하고,
    상기 기록되지 않은 물리적 블록에 상기 메모리내의 상기 데이터를 기록하고,
    상기 데이터가 기록되었던 상기 이전에 기록되지 않은 블록을 기록된것으로서 지시하도록 상기 데이터가 기록되었던 상기 유닛에 대한 상기 할당맵을 변경하고,
    상기 데이터가 기록되었던 상기 이전에 기록되지 않은 블록의 물리적 주소로 상기 가상맵이 상기 가상 주소를 매핑하도록 상기 가상맵을 변경하는 것을 포함하는 제 1 프로시져, 및
    상기 가상 주소가 매핑되었던 상기 물리적 블록을 삭제하고,
    상기 데이터를 상기 물리적 블록에 기록하고,
    상기 물리적 블록이 상기 유닛 할당 맵에서 삭제된것으로서 이전에 마킹되었으면, 상기 데이터가 기록되었던 상기 이전에 삭제된 블록을 기록된 것으로서 지시하도록 상기 데이터가 기록되었던 상기 유닛에 대하여 상기 할당맵을 변경하는 것을 포함하는 제 2 프로시져중 하나를 선택하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  27. 제 26 항에 있어서, 상기 제 1 프로시져는 항상 선택되는 것을 특징으로 하는 메모리 관리 방법.
  28. 제 26 항에 있어서, 상기 제 2 프로시져는 항상 선택되는 것을 특징으로 하는 메모리 관리 방법.
  29. 제 26 항에 있어서, 상기 선택은 상기 제 1 프로시져를 선택할때 상기 기록되지 않은 물리적 블록이 위치될 수 있는지 여부에 의존하는 것을 특징으로 하는 메모리 관리 방법.
  30. 제 26 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 하나는 상기 가상 주소가 매핑되었던 상기 물리적 유닛내에 실질적으로 동시에 기록되기 위한 상기 데이터의 양에 따라 선택되는 것을 특징으로 하는 메모리 관리 방법.
  31. 제 26 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 하나는 물리적 블록을 삭제하기 위해 필요한 시간의 양 및 물리적 유닛을 삭제하기 위해 필요한 시간의 양중 적어도 하나에 따라 선택되는 것을 특징으로 하는 메모리 관리 방법.
  32. 제 26 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 하나는 기록될 상기 데이터에 따라 선택되는 것을 특징으로 하는 메모리 관리 방법.
  33. 제 26 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 하나는 상기 가상 주소가 매핑되었던 유닛의 물리적 유닛 수에 따라 선택되는 것을 특징으로 하는 메모리 관리 방법.
  34. 제 26 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 하나는 상기 가상 주소에 따라 선택되는 것을 특징으로 하는 메모리 관리 방법.
  35. 제 26 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 하나는 랜덤값에 따라 선택되는 것을 특징으로 하는 메모리 관리 방법.
  36. 제 26 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 각각의 하나는 전체 선택의 고정된 퍼센티지로 선택되는 것을 특징으로 하는 메모리 관리 방법.
  37. 제 26 항에 있어서,
    카운터로 상기 물리적 블록의 삭제를 카운트하기 위하여, 각각의 물리적 블록에 연관된 카운터를 할당하는 단계, 및
    상기 제 2 프로시져를 선택할때, 기록되는 상기 물리적 블록과 연관된 상기 카운터를 증가시키는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  38. 제 37 항에 있어서, 상기 제 1 및 상기 제 2 프로시져중 하나는 상기 가상 주소가 매핑되었던 상기 물리적 블록과 연관된 상기 카운터에 따라 선택되는 것을 특징으로 하는 메모리 관리 방법.
  39. 제 26 항에 있어서,
    모든 블록이 기록되지 않은 상태인 상기 메모리에서 할당맵을 가지는 전달 유닛을 설정하는 단계,
    상기 제 1 프로시져가 선택되고 기록되지 않은 물리적 블록이 위치될 수 없으면, 삭제될, 상기 전달 유닛외의, 선택된 유닛을 위치시키는 단계,
    상기 선택된 유닛으로 각각의 기록된 블록을 판독하는 단계,
    상기 전달 유닛에 상기 선택된 유닛내의 각각의 기록된 블록을 기록하는 단계,
    기록된 것으로서 상기 기록된 블록의 상태를 지시하기 위하여 상기 전달 유닛 할당맵을 업데이트하는 단계,
    상기 선택된 유닛을 삭제하는 단계, 및
    상기 기록된 블록의 상기 새로운 위치를 보이기 위하여 상기 가상맵을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  40. 제 26 항에 있어서,
    모든 블록이 기록되지 않은 상태인 상기 메모리내의 할당맵을 가지는 전달 유닛을 설정하는 단계,
    삭제될, 상기 전달 유닛외의, 선택된 유닛을 주기적으로 위치시키는 단계,
    상기 선택된 유닛내의 각각의 기록된 블록을 판독하는 단계,
    상기 전달 유닛에 상기 선택된 유닛내의 각각의 기록된 블록을 기록하는 단계,
    기록된 것으로서 상기 기록된 블록의 상태를 지시하기 위하여 상기 전달 유닛 할당맵을 업데이트하는 단계,
    상기 선택된 유닛을 삭제하는 단계, 및
    상기 기록된 블록의 상기 새로운 위치를 보이기 위하여 상기 가상맵을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  41. 제 26 항에 있어서,
    가상 주소로 상기 메모리로 부터 데이터를 판독할때,
    상기 가상맵을 사용하여 물리적 주소에 상기 가상 주소를 매핑하는 단계, 및
    상기 물리적 주소로 상기 메모리로 부터 상기 데이터를 판독하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
KR1020037014688A 2001-06-18 2002-06-13 플렉시블 플래시 파일 시스템을 위한 시스템 및 방법 KR100882862B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/882,056 2001-06-18
US09/882,056 US6591330B2 (en) 2001-06-18 2001-06-18 System and method for flexible flash file
PCT/IL2002/000459 WO2002103526A2 (en) 2001-06-18 2002-06-13 System and method for flexible flash file system

Publications (2)

Publication Number Publication Date
KR20040017215A true KR20040017215A (ko) 2004-02-26
KR100882862B1 KR100882862B1 (ko) 2009-02-10

Family

ID=25379794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037014688A KR100882862B1 (ko) 2001-06-18 2002-06-13 플렉시블 플래시 파일 시스템을 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US6591330B2 (ko)
KR (1) KR100882862B1 (ko)
AU (1) AU2002304277A1 (ko)
FI (1) FI20031410A (ko)
WO (1) WO2002103526A2 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7024532B2 (en) * 2001-08-09 2006-04-04 Matsushita Electric Industrial Co., Ltd. File management method, and memory card and terminal apparatus that make use of the method
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
US6845061B2 (en) * 2003-02-05 2005-01-18 Megawin Technology Co., Ltd. Method for quickly detecting the state of a nonvolatile storage medium
TWI260497B (en) * 2003-06-13 2006-08-21 Hon Hai Prec Ind Co Ltd System and method of flash file
TWI243303B (en) * 2003-11-14 2005-11-11 Hon Hai Prec Ind Co Ltd System and method for managing flash file stored in a flash memory
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7386700B2 (en) 2004-07-30 2008-06-10 Sandisk Il Ltd Virtual-to-physical address translation in a flash file system
US20060059296A1 (en) * 2004-09-16 2006-03-16 M-Systems Flash Disk Pioneers, Ltd. Emulating small block size of flash memory
US7426623B2 (en) * 2005-01-14 2008-09-16 Sandisk Il Ltd System and method for configuring flash memory partitions as super-units
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
JP2008530683A (ja) * 2005-02-11 2008-08-07 サンディスク アイエル リミテッド Nandフラッシュメモリ・システム・アーキテクチャ
US7389397B2 (en) * 2005-06-01 2008-06-17 Sandisk Il Ltd Method of storing control information in a large-page flash memory device
TW200705180A (en) * 2005-07-29 2007-02-01 Genesys Logic Inc Adjustable flash memory management system and method
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
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US8296497B2 (en) * 2006-03-14 2012-10-23 Stmicroelectronics Pvt. Ltd. Self-updating memory controller
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
US8151060B2 (en) * 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
KR100817204B1 (ko) 2006-12-22 2008-03-27 재단법인서울대학교산학협력재단 플래시 메모리의 매핑 방법 및 장치
US8127200B2 (en) * 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US8019959B2 (en) * 2007-02-09 2011-09-13 Marvell World Trade Ltd. Nonvolatile memory system
US7970983B2 (en) * 2007-10-14 2011-06-28 Sandisk Il Ltd. Identity-based flash management
KR20100133359A (ko) * 2007-12-24 2010-12-21 동우 화인켐 주식회사 이리듐 착물, 이를 포함하는 유기전기발광소자
CN101727397B (zh) * 2008-10-20 2012-06-27 群联电子股份有限公司 区块管理与更换方法、闪存储存系统及其控制器
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
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
US8612718B2 (en) * 2009-08-19 2013-12-17 Seagate Technology Llc Mapping alignment
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
US8452914B2 (en) * 2010-11-26 2013-05-28 Htc Corporation Electronic devices with improved flash memory compatibility and methods corresponding thereto
JP2012226822A (ja) 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489294B2 (en) * 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
US10976947B2 (en) * 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group

Family Cites Families (7)

* 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
US5796657A (en) * 1996-03-29 1998-08-18 Aplus Integrated Circuits, Inc. Flash memory with flexible erasing size from multi-byte to multi-block
KR100204810B1 (ko) * 1996-09-13 1999-06-15 윤종용 소거블럭사이즈를 가변시킬 수 있는 반도체 메모리장치
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JPH11224492A (ja) * 1997-11-06 1999-08-17 Toshiba Corp 半導体記憶装置、不揮発性半導体記憶装置及びフラッシュメモリ
US5991196A (en) * 1997-12-16 1999-11-23 Microchip Technology Incorporated Reprogrammable memory device with variable page size
US6400603B1 (en) * 2000-05-03 2002-06-04 Advanced Technology Materials, Inc. Electronically-eraseable programmable read-only memory having reduced-page-size program and erase

Also Published As

Publication number Publication date
US20020194438A1 (en) 2002-12-19
US6591330B2 (en) 2003-07-08
WO2002103526A2 (en) 2002-12-27
WO2002103526A3 (en) 2004-03-04
FI20031410A (fi) 2003-11-12
AU2002304277A1 (en) 2003-01-02
KR100882862B1 (ko) 2009-02-10

Similar Documents

Publication Publication Date Title
KR100882862B1 (ko) 플렉시블 플래시 파일 시스템을 위한 시스템 및 방법
KR100952135B1 (ko) 순차적 기록만을 사용하는 플래시 관리 시스템
KR100495722B1 (ko) 개선된 플래시 파일 시스템
KR100324028B1 (ko) 비휘발성 메모리에서 파일의 연속 중복기재를 수행하는 방법
US8250294B2 (en) Block management for mass storage
JP4004468B2 (ja) 大きなページをサポートするようにさせるための方法およびシステム
US8171203B2 (en) Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6567307B1 (en) Block management for mass storage
US9489301B2 (en) Memory systems
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
KR101014599B1 (ko) 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭
EP0882264B1 (en) Flash memory mass storage system and associated method
KR101329068B1 (ko) 블록 관리를 가지는 비휘발성 메모리
US20120173804A1 (en) Methods of operating a memory system
US20080307158A1 (en) Method and apparatus for providing data type and host file information to a mass storage system
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
JP2009503729A (ja) 論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム

Legal Events

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

Payment date: 20130117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140117

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee