KR101110785B1 - 프로그램 가능한 내구력을 가진 플래시 메모리 - Google Patents

프로그램 가능한 내구력을 가진 플래시 메모리 Download PDF

Info

Publication number
KR101110785B1
KR101110785B1 KR1020077030016A KR20077030016A KR101110785B1 KR 101110785 B1 KR101110785 B1 KR 101110785B1 KR 1020077030016 A KR1020077030016 A KR 1020077030016A KR 20077030016 A KR20077030016 A KR 20077030016A KR 101110785 B1 KR101110785 B1 KR 101110785B1
Authority
KR
South Korea
Prior art keywords
memory
delete delete
block
blocks
endurance
Prior art date
Application number
KR1020077030016A
Other languages
English (en)
Other versions
KR20080021684A (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 KR20080021684A publication Critical patent/KR20080021684A/ko
Application granted granted Critical
Publication of KR101110785B1 publication Critical patent/KR101110785B1/ko

Links

Images

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
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

요구되는 유효 내구력을 제공하도록 비휘발성 메모리의 적어도 일부분을 구성하기 위한 비휘발성 메모리 디바이스, 시스템, 방법, 및 컴퓨터 판독가능한 코드가 개시된다. 몇몇 실시예에 따라, 결정된 물리 메모리의 크기는 비휘발성 메모리의 적어도 일부분에 대하여 할당된다. 몇몇 실시예에 따라, 구성된 물리 메모리의 주어진 크기에 대하여, 더 큰 유효 내구력을 요구하는 것은 더 작은 크기의 논리적으로 어드레싱 가능한 메모리를 제공한다. 몇몇 실시예에 따라, 주어진 크기의 논리적으로 어드레싱 가능한 메모리에 대하여, 더큰 유효 내구력을 요구하는 것은 더 큰 크기의 물리 메모리를 구성한다. 몇몇 실시예에서, 컨트롤러는 비휘발성 메모리의 적어도 일부분을 구성하도록 동작한다. 대안으로써 또는 부가적으로, 드라이버 코드는 비휘발성 메모리 디바이스에 연결된 호스트 디바이스 상에 상주한다. 선택적으로, 요구되는 내구력의 값은 비휘발성 메모리 디바이스로 발행된 커맨드 내에 특정된다. 몇몇 실시예에서, 이 커맨드는 제조시, 그리고/또는 비휘발성 메모리 디바이스의 실행 시에 생성될 수 있다. 구성될 수 있는 예시적인 비휘발성 메모리는 NAND 플래시 메모리, NOR 플래시 메모리, 및 EEPROM 메모리를 포함하지만, 이에 제한되지는 않는다.
비휘발성 메모리 디바이스, 비휘발성 메모리, 유효 내구력, 컨트롤러.

Description

프로그램 가능한 내구력을 가진 플래시 메모리{FLASH MEMORY WITH PROGRAMMABLE ENDURANCE}
본 발명은 플래시 메모리 디바이스와 같은 비휘발성 메모리 디바이스에 관한 것이다.
비휘발성 메모리
비휘발성 메모리는 파워 소스 없이 그것의 저장된 데이터를 보유할 수 있는 타입의 메모리이다. 판독, 기록, 및 삭제 능력, 액세스 시간, 데이터 보존력, 및 데이터 내구력 사이클에 의해 차별되는, 몇 가지 타입의 비휘발성 메모리가 존재한다. 전기적 소거 가능한 프로그램가능한 판독 전용 메모리(EEPROM)는 바이트 당 레벨에서 판독 및 기록 오퍼레이션을 수행할 수 있고, 이는 각각의 메모리 위치가 개별적으로 판독되고 기록될 수 있음을 의미한다.
플래시-타입 플로팅-게이트 트랜지스터로 구성된 플래시 메모리는 EEPROM 메모리와 기능 및 성능이 유사한 비휘발성 메모리이고, 플래시 메모리는 그 오퍼레이팅에 특정한 제한은 있지만, 비교적 값싸다는 장점을 가진다. 이것은 전체 메모리 섹션을 먼저 삭제하지 않고, 플래시 메모리 상의 전에 기록된 위치에 재기록하는 것이 불가능하다, 즉, 플래시 셀은 그들이 다시 프로그래밍되기 전에 삭제되어야 (예컨대, "1"로 프로그래밍되어야) 한다. 플래시 메모리는 비교적 큰 그룹의 셀만 삭제할 수 있고, 이를 통상적으로 (전형적으로, 현재의 상업적인 디바이스에 대하여 16 내지 128KB 크기인) 블록 삭제라 한다. 그러므로, 단일 바이트, 또는 심지어 1KB의 정크의 컨텐츠를 업데이트하는 것 조차도 - 업데이트되지 않은 삭제 블록 부분을 그 외의 부분으로 먼저 이동시키고, 삭제 오퍼레이션 동안 보존한 다음, 업데이트된 후 다시 그 위치로 이동시키는 - 하우스키핑 오퍼레이션을 필요로 한다.
전기적 소거가능한 비휘발성 메모리는 기록 및 삭제 오퍼레이션을 수행할 때, 마모되는 단점을 가진다. 각각의 메모리 위치는 제한된 수의 기록/삭제 사이클을 견딜 수 있다. 특정 횟수 이상 기록된 플래시 영역은 신뢰할 수 없고, 초과사용된 위치로부터 판독된 데이터는 틀린 값일 수 있다. 신뢰할 수 없게 되기 전까지 견딜 수 있는 비휘발성 메모리 영역의 기록 오퍼레이션의 횟수를 내구력이라 한다. 전형적인 내구력 레벨은 100,000번의 기록/삭제 사이클이다. 이러한 내구력 레벨은 디바이스 제조자에 의해 보증되고, 실제로 최악의 경우를 고려한 횟수이며, 플래시 메모리에 포함된 대부분의 셀은 훨씬 더 많은 횟수의 기록/삭제 사이클을 견딜 수 있을 것이다.
플래시 메모리는 사용된 메모리 셀 상호연결 아키텍처의 타입을 기초로, NOR 및 NAND 플래시로 더 분류된다. NAND 플래시에 대한 비트당 비용은 NOR 플래시에 대한 비트당 비용보다 낮다. 그러나, 기록된 위치가 삭제된다면(즉, 모두 "1"을 포함한다면), NAND 플래시는 바이트 레벨에서 판독할 수 있고 기록 오퍼레이션이 가능한 NOR 플래시 메모리와 비교되는, 블록 판독 및 기록 오퍼레이션으로 제한된다. 또한, 전형적으로 NAND 플래시 메모리는 신뢰할 수 없고 데이터를 저장하기 위해 사용하지 않아야 하는 작은 일부분의 배드 블록을 포함한다. 배드 블록은 플래시 메모리를 처음 테스트할 때 제조자에 의해 검증되거나, 또는 현장에서 사용하는 동안 블록의 장애를 탐지한 때 소프트웨어에 의해 검증된다.
NAND 플래시 메모리의 이러한 한계를 극복하기 위해, 플래시 파일 시스템(FFS)이 개발되었다. FFS는 플래시 메모리를 탑재하고, 자기 디스크 상에서 데이터 저장을 에뮬레이팅하는 디바이스 상에 데이터 저장 및 처리 시스템을 제공한다. 이러한 FFS는 본 명세서에 그 전체가 참조로서 합치된, 미국특허 제5,937,425호에 개시되어 있다. 세 타입의 비휘발성 메모리(EEPROM, NOR 플래시, 및 NAND 플래시)는 모두 현재 사용되는 것이며, 그 어플리케이션에 따라 특정 타입이 결정된다. NAND 플래시 메모리는 대용량 저장장치가 요구되는데 주로 사용되지만, 블록 액세스 특성으로 인해, 소프트웨어 어플리케이션은 NAND 플래시로부터 직접적으로 구동할 수 없다. 소프트웨어 어플리케이션이 메모리 디바이스로부터 직접적으로 실행되어야 할 때, NOR 플래시 메모리가 사용되어야 한다. EEPROM은 비교적 작은 크기의 메모리가 요구되는데 사용되고, 바이트 레벨에서 데이터가 기록된다.
메모리 블록 디바이스는 자기 디스크 파티션과 유사하게, 몇몇 파티션으로 논리적으로 분할될 수 있다. 각각의 파티션은 개별 논리 유닛 또는 디스크와 같이 동작한다. 또한, FFS를 구현하는 플래시 컨트롤러는 통상적으로 디바이스 파티션을 관리할 책임이 있다.
몇몇 어플리케이션과 함께, EEPROM 디바이스는 NOR 플래시 메모리를 사용하여 에뮬레이팅될 수 있다. 에뮬레이팅된 EEPROM은 NOR 메모리에 단일 바이트를 기 록하고, 원할 때 NOR 메모리 블록을 삭제하는 것이 가능하게 한다. 에뮬레이팅된 EEPROM은 하드웨어, 펌웨어, 또는 이 둘의 조합으로 구현될 수 있다.
몇몇 어플리케이션과 함께, 플래시 메모리의 제한된 내구력은, 예를 들어, 가상 메모리로서 블록 디바이스를 사용하는 운영체제에서 문제점을 가질 수 있다. 어플리케이션을 위해 사용가능한 랜덤 액세스 메모리(RAM)의 양을 증가시키기 위해, 운영체제는 디스크 스와핑을 구현할 수 있다. 디스크 스와핑에서, 운영체제는 그것의 RAM의 몇몇 섹션을 그것의 대용량 저장 디바이스에 저장하고, 어플리케이션이 그것에 액세스할 필요가 있을 때 가능한 빨리 RAM 데이터를 리로딩한다. 대용량 저장장치의 스와핑 영역으로 사용된 영역은 코드 또는 정적 데이터를 저장하기 위해 사용되는 대용량 저장 디바이스의 다른 섹션과 비교하여 상대적으로 높은 마모를 일으키는 집중적인 판독/삭제/기록 또는 삭제 사이클을 견뎌야한다. 다른 예는 파일 (시스템) 할당 테이블(FAT)이다. FAT는 새로운 파일이 생성되거나, 기존의 파일의 크기가 변할 때마다 매우 자주 업데이트된다.
비휘발성 메모리 디바이스의 수명 연장
NAND 플래시를 탑재한 대부분의 시스템은 마모-레벨링 알고리즘을 구현한다. 마모-레벨링 알고리즘은 각각의 플래시 메모리 블록 상에 실행될 수 있는 기록 오퍼레이션의 횟수를 최적화한다. 이 알고리즘에 따라, 각각의 플래시 메모리 블록은 대략적으로 동등한 횟수만큼 기록된다. 논리 블록이 물리 블록으로 번역될 때, 동일한 논리 블록이 상이한 물리 위치에 기록될 수 있다. 그러므로, 마모 레벨링 알고리즘은 디바이스 상에 사용가능한 논리적으로 어드레싱 가능한 메모리의 크기 를 부수적으로 줄이지 않고 플래시 메모리 디바이스의 수명을 연장하기 위한 많은 상황에서 유용할 수 있다.
미국특허 제5,367,484호는 선택된 블록이 "높은 내구력"을 제공하도록 설계된 다수의 데이터 저장 블록을 가진 EEPROM 디바이스를 개시한다. 이 선택된 블록은 스위칭 유닛을 사용하는 유사한 리둔던트 블록과 병렬로 설치되고, 동일한 데이터가 두 블록에 동시에 기록된다. 미국특허 제5,367,484호에 따라, 이 리둔던시는 선택된 블록 및 리둔던트 블록 중 하나만 고장난다면, 대응 논리 영역에 데이터를 기록하는 것이 가능할 것이기 때문에, 선택된 블록의 내구력을 증가시킨다. 미국특허 제5,793,684호는 높은 신뢰도 및 리둔던시가 후속적으로 요구되지 않을 때, 증가된 크기의 어드레스 위치를 가진 메모리 디바이스를 생산하기 위해 리둔던트 제2메모리 어레이의 대응 어드레스 위치로부터 제1메모리 어레이의 어드레스 위치를 연결해제하기 위해 스위칭 유닛에 신호가 전송될 수 있음을 개시한다. EEPROM과 다른 메모리의 내구력 레벨을 증가시키는 개시물 또는 제안은 없었다. 또한, 앞서 언급한 특허들은 얼마나 많은 추가적인 내구력 "높은" 내구력 레벨을 제공하는지 개시하지 않았고, 요구된 내구력을 제공하도록 비휘발성 메모리를 구성하는 단계를 개시하거나 교시하지 않았다.
미국 특허출원 2003/0028733은 호스트로부터 데이터를 저장하기 위한 휘발성 메모리, 휘발성 메모리에 저장된 데이터를 저장하고 그 데이터를 전기적으로 삭제할 수 있는 비휘발성 메모리, 및 휘발성 메모리와 비휘발성 메모리 사이의 데이터 전송을 컨트롤하는 컨트롤 회로를 가진 메모리 장치를 개시한다. 개시된 메모리 디바이스는, 예컨대, 휘발성 메모리의 데이터 저장 영역의 용량이 비휘발성 메모리의 데이터 저장 영역의 용량보다 큰 휘발성 메모리 디바이스이다. 개시된 디바이스는 비교적 작은 비휘발성 메모리 백업을 가진 휘발성 메모리 디바이스이고, 본 명세서에서 언급한 바와 같은 비휘발성 메모리의 개시물은 없었다.
개선된 비휘발성 디바이스 및 개선된 메모리 내구력을 제공하도록 비휘발성 메모리 디바이스를 구성하는 방법에 대한 필요성이 존재한다. 메모리 일부 또는 전체 비휘발성 메모리가 얼마나 많은 기록 또는 삭제 사이클을 신뢰성 있게 유지할 수 있는지 대략적으로 미리 아는 것이 적절한 계획 및 디바이스 사용을 가능하게 할 것임을 알아야 한다. 그러므로, 특정의 요구되는 메모리 내구력을 제공하도록 구성될 수 있는 디바이스에 대한 필요성이 존재한다.
앞서 언급된 필요성은 본 발명의 몇 가지 형태에 의해 충족된다.
먼저, 비휘발성 메모리, 및 요구되는 유효 내구력을 제공하기 위해 적어도 일부분의 비휘발성 메모리를 구성하도록 동작하는 컨트롤러를 포함하는 비휘발성 메모리 디바이스가 지금부터 개시된다. 몇몇 실시예에 따라, 요구되는 유효 내구력은 비휘발성 메모리의 적어도 일부분의 본래의 물리적 내구력 보다 우수하다.
몇몇 실시예에 따라, 컨트롤러에 의해 적어도 일부분을 구성하는 단계는 적어도 일부분을 보존하기 위한 물리적 비휘발성 메모리의 크기를 결정하는 단계, 및 물리적 메모리의 결정된 크기를 할당하는 단계를 포함하고, 이 때, 상기 결정된 물리적 크기는 적어도 일부분의 논리적 크기보다 크다.
그러므로, 한 예에서, 논리적으로 어드레싱 가능한 메모리 부분(예컨대, 20MB의 메모리)은 본래의 물리적 메모리의 배수(예컨대, "내구력 배수")(예컨대, 3배)와 같은 유효 내구력을 가지도록 구성될 것이 요구된다. 특정 예에 따라, 요구된 유효 내구력을 제공하기 위해 비휘발성 메모리의 물리 영역(예컨대, 60MB의 물리 메모리)이 확보되고, 이 물리 영역은 내구력 배수와 같은 다수의 물리 서브영역(예컨대, 3)으로 서브-분할된다. 이러한 특정 예에서, 각각의 서브-영역의 크기는 논리적으로 어드레싱 가능한 메모리 부분(예컨대, 20MB의 메모리)의 크기와 같다.
이 예에 따라, 특정 논리적 어드레스에 데이터를 기록하기 위한 제1요청은 제1서브영역 내의 적절한 위치에 데이터를 기록함으로써 처리된다. 이와 유사하게, 동일한 특정 논리적 어드레스에 데이터를 기록하기 위한 제2 및 제3요청은 제2 및 제3서브영역 내의 각각의 위치에 데이터를 기록함으로써 처리된다. 특정 논리 어드레스에 데이터를 기록하기 위한 제4요청은 제1서브영역에 데이터를 기록하도록, 한번 이상 동작한다. 그러므로, 이 예에서, 각각의 시간에 상이한 물리 위치에 데이터를 기록함으로써, 임의의 주어진 물리 위치는 기록 오퍼레이션의 개수 분의 1(예컨대, 1/내구력 배수, 또는 1/3)을 견딘다. 그러므로, 물리적 메모리의 예비 영역, 및 부수적인 논리적으로 어드레싱 가능한 메모리 부분은 요구된 유효 내구력을 제공한다.
그러므로, 몇몇 실시예에 따라, 주어진 논리 메모리 어드레스로의 복수의 기록 오퍼레이션 각각은 메모리 내의 상이한 물리적 위치에 데이터를 기록하도록 동작한다.
또한, 앞선 예에 따라, 본래의 물리적 내구력 보다 우수한 유효 내구력(예컨대, 물리 내구력의 3배)을 요구하는 것은 20MB의 논리적 저장장치에 대하여 60MB의 물리적 메모리를 확보하게 한다. 그러므로, 이 예에 따라, 논리적으로 어드레싱 가능한 메모리의 전체 크기는 (예컨대, 60MB와 20MB의 차이 또는 40MB 만큼) 메모리를 구성할 때 감소된다.
몇몇 실시예에 따라, 파티션 당 확장된 저장기기의 할당, 및 논-랜덤 액세스 플래시 메모리 디바이스 내의 각각의 파티션의 관리는 FFS의 일부로 구현되는 것이 전형적이지만, 외부 어플리케이션에 의해 구현될 수도 있고, 그리고/또는 하드웨어에 의해 지원될 수도 있다. 원하는 크기의 물리적 메모리를 할당한 후, 각각의 파티션은 본 발명 없이 관리되는 방법과 유사한 방법으로 관리된다.
그러므로, 몇몇 실시예에 따라, 논리적으로 어드레싱 가능한 메모리의 전체 크기는 증가된 유효 내구력을 제공하도록 구성될 때 감소된다.
몇몇 실시예에 따라, 주어진 크기의 구성된 물리 메모리에 대하여, 더 큰 유효 내구력을 요구하는 것은 더 낮은 크기의 논리적으로 어드레싱 가능한 메모리를 제공한다.
대안으로써 또는 부가적으로, 주어진 크기의 논리적으로 어드레싱 가능한 메모리에 대하여, 더 큰 유효 내구력을 요구하는 것은 더 큰 크기의 물리적 비휘발성 메모리를 구성한다.
몇몇 실시예에 따라, 상기 크기는 요구된 유효 내구력의 특정 값에 따라 결정된다.
본 발명의 몇몇 실시예에 따라, 비휘발성 메모리의 내구력을 다양한 레벨로 프로그램하는 것이 가능하고, 원하는 내구력은 최소 원하는 내구력 레벨을 제공하거나 보장하기 위한 논리적 메모리 크기와 추가 내구력 사이의 트레이드 오프이다.
몇몇 실시예에 따라, 컨트롤러는 유효 내구력을 복수의 값 중 하나로 설정하도록 동작한다.
유효 내구력이 요청되는 방법에는 제한이 없다. 몇몇 실시예에 따라, 컨트롤러는 외부 커맨드(예컨대, 포맷팅 커맨드)와 함께 제공된 수신 파라미터에 따라 비휘발성 메모리를 구성하도록 동작한다.
몇몇 실시예에 따라, 본 디바이스는 요구된 유효 내구력의 값을 수신하기 위한 인터페이스를 더 포함한다. 특히, 몇몇 실시예에 따라, 플래시 메모리를 초기화하기 위한 사용자 인터페이스가 강화되고, 각각의 정의된 파티션 당 원하는 내구력 레벨을 특정하기 위한 엔트리를 포함한다.
본 발명의 실시예에 따라 구성될 비휘발성 메모리의 타입에는 제한이 없고, 유효 내구력을 제공하기 위한 랜덤 액세스 메모리의 구성, 및 비-랜덤 액세스 메모리의 구성은 모두 본 발명의 범위에 속함을 이해해야 한다. 적합한 비휘발성 메모리는 NAND 플래시 메모리, NOR 플래시 메모리, 및 EEPROM 메모리를 포함하지만 이에 제한되지는 않는다. 그럼에도 불구하고, 다양한 실시예에서, 유효 내구력을 제공하도록 구성하기 위해 사용된 특정 알고리즘은 비휘발성 메모리의 타입에 따라 다양할 수 있음을 알아야 한다.
몇몇 실시예에 따라, 이 디바이스는 EEPROM 메모리를 에뮬레이팅하도록 동작한다.
몇몇 실시예에 따라, 컨트롤러는 요구된 유효 내구력을 제공하기 위해 모든 비휘발성 메모리를 구성하도록 동작한다.
몇몇 실시예에 따라, 컨트롤러는 할당된 물리 메모리에 데이터를 기록하도록 동작하고, 적어도 하나의 기록하는 단계는 할당된 물리 메모리에 주어진 데이터를 한번만 기록하는 단계를 포함한다.
몇몇 실시예에 따라, 컨트롤러는 비휘발성 메모리의 제1부분에 대하여 유효 내구력을 제1값으로 설정하도록 동작하고, 비휘발성 메모리의 제2부분에 대하여 유효 내구력을 제1값과 상이한 제2값으로 설정하도록 동작한다.
몇몇 실시예에 따라, 컨트롤러는 내장된 소프트웨어를 포함하고, 본 구성은 내장된 소프트웨어에 의해 적어도 일부분 유효화된다.
본 발명의 특정 실시예는 요구된 유효 내구력을 제공하도록 비휘발성 메모리를 구성하는 메모리 디바이스 컨트롤러에 관하여 서술되어 있으나, 이것이 본 발명의 제한은 아니다. 메모리 구성은 임의의 디바이스 상에 상주하는 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현될 수 있다. 메모리 구성은 컨트롤 펌웨어를 강화함으로써 기존의(off-the-shelf) 메모리 디바이스 또는 디바이스를 프로세싱 유닛 또는 버스에 연결하는 글루 로직(glue logic)에 적용될 수 있다.
지금부터, 비휘발성 메모리, 비휘발성 메모리에 연결된 호스트 디바이스, 호스트 디바이스 상에 상주하고, 요구된 유효 내구력을 제공하기 위해 적어도 일부분의 비휘발성 메모리를 구성하도록 동작하는 드라이버 코드를 포함하는 비휘발성 메모리 디바이스를 포함하는 데이터 저장 시스템이 처음으로 개시된다.
지금부터, 유효 메모리 내구력을 설정하는 방법이 처음으로 개시된다. 본 명세서에 개시된 방법은 비휘발성 메모리를 포함하는 비휘발성 메모리 디바이스의 유효 내구력을 설정하기 위한 커맨드를 생성하는 단계, 및 요구된 유효 내구력을 제공하도록 적어도 일부분의 비휘발성 메모리를 구성하는 단계를 포함한다.
몇몇 실시예에 따라, 커맨드는 비휘발성 메모리 디바이스에 연결된 호스트 디바이스에 의해 생성된 외부 커맨드이다.
몇몇 실시예에 따라, 유효 내구력은 비휘발성 메모리의 적어도 일부분의 물리적 내구력을 능가한다.
몇몇 실시예에 따라, 구성하는 단계는 비휘발성 메모리 디바이스의 논리적으로 어드레싱 가능한 메모리의 전체 크기를 감소시키는 단계를 포함한다.
몇몇 실시예에 따라, 유효 내구력은 제조 시간 또는 비휘발성 메모리 디바이스의 포맷팅 시간에 설정된다.
몇몇 실시예에 따라, 유효 내구력은 비휘발성 메모리 디바이스의 동작시에 설정된다.
몇몇 실시예에 따라, 유효 내구력의 설정은 비휘발성 메모리 디바이스 내에 내장된 소프트웨어에 의해 적어도 일부분 유효화된다.
몇몇 실시예에 따라, 유효 내구력의 설정은 비휘발성 메모리 디바이스에 연결된 호스트 컴퓨터 상에 상주하는 소프트웨어에 의해 적어도 일부분 유효화된다
지금부터, 비휘발성 메모리 디바이스의 비휘발성 메모리의 적어도 일부분을 요구된 유효 내구력을 제공하도록 구성하기 위한 명령어를 포함하는 컴퓨터 판독가능한 코드를 내장한 컴퓨터 판독가능한 저장 매체가 처음으로 개시된다.
이러한 실시예 및 추가적인 실시예는 하기의 실시예 및 예로부터 명백해질 것이다.
도 1A는 본 발명의 예시적인 실시예에 따른 예시적인 비휘발성 메모리 디바이스의 블록 다이어그램을 제공한다.
도 1B는 유효 내구력을 제공하기 위한 NAND 플래시와 같은 논-랜덤 액세스 메모리의 디바이스 파티셔닝 루틴의 예시적인 구현을 도시한다.
도 2는 비휘발성 메모리의 적어도 일부분이 특정 내구력을 제공하도록 구성된 예시적인 루틴의 플로우 차트를 제공한다.
도 3은 예시적인 플래시 메모리 관리 알고리즘의 개략적인 플로우 차트를 제공한다.
도 4는 논-NOR 플래시를 유효 내구력을 제공하도록 구성하기 위한 루틴의 예시적인 구현을 도시한다.
도 5는 본 발명의 예시적인 실시예에 따라 랜덤 액세스 디바이스로의 기록 오퍼레이션을 나타내는 플로우차트이다.
도 6은 예시적인 판독 프로세스를 보여준다.
도 7은 매핑 테이블의 예시적인 하드웨어 구현을 도시한다.
지금부터 본 발명은 특정, 예시적인 실시예에 관하여 서술될 것이다. 본 발명은 개시된 예시적인 실시예에 제한되지 않음을 이해해야 한다. 또한, 비휘발성 메모리 디바이스의 모든 특징이 요구된 유효 내구력을 제공하기 위해 메모리를 구성하도록 동작하는 것은 아니고, 데이터 저장 시스템, 유효 메모리 내구력을 설정하기 위한 방법, 및 컴퓨터 판독가능한 코드가 첨부된 청구항 중 임의의 특정 하나에 청구된 바와 같은 본 발명을 구현하기 위해 필수적인 것이 아님을 이해해야 한다. 본 발명을 완전히 실시하게 위해 디바이스의 다양한 엘리먼트 및 특징이 서술되어 있다. 또한, 프로세스 또는 방법이 도시되어 있거나 서술된 본 명세서에서, 하나의 단계가 다른 단계보다 먼저 수행된 다른 단계에 의존하는 것으로 명시되어 있지 않다면, 방법의 단계는 임의의 순서로 또는 동시에 수행될 수 있음을 이해해야 한다.
도 1A는 본 발명의 예시적인 실시예에 따른 예시적인 비휘발성 메모리 디바이스(100)의 블록 다이어그램을 제공한다. 도 1A에 따라, 데이터 및 커맨드는 외부 인터페이스(112)를 통해 (도시되지 않은) 호스트 디바이스로부터 수신된다. 중앙 처리 장치(110)는 그 디바이스의 비휘발성 메모리(예컨대, 플래시 메모리(106))에 데이터를 저장한다. CPU(110)는 그 디바이스를 관리할 때, ROM 및 휘발성 메모리(예컨대, RAM(104))를 사용하게 한다. 휘발성 메모리는 데이터를 저장하기 위해서가 아니라 주로 디바이스를 관리하기 위해 사용되기 때문에, 전형적으로 휘발성 메모리의 크기는 비휘발성 메모리의 크기보다 훨씬 작다(예컨대, 적어도 10배).
본 명세서를 통해, "비휘발성 메모리 디바이스"는 디바이스 내에 제공된 대부분의 메모리가 비휘발성 메모리인 디바이스를 말한다. 비휘발성 메모리 디바이스의 예는 스마트카드 디바이스, 메모리 카드, 멀티미디어카드(MultiMediaCards) 등을 포함한다. 몇몇 실시예에서, "비휘발성 메모리 디바이스"는 휘발성 및 비휘발성 메모리를 모두 포함하고, 비휘발성 메모리의 크기와 휘발성 메모리의 크기 사이의 비율은, 예컨대, 적어도 10배, 또는 적어도 100배이다.
도 1B는 유효 내구력을 제공하도록 NAND 플래시와 같은 논-랜덤 액세스 메모리를 구성하기 위한 루틴의 예시적인 구현을 도시한다. 본 예에 따라, 메모리는 3 부분으로 분할된다. 제1부분(1)은 대부분 정적 데이터를 저장하기 위해 사용되고, 강화된 내구력을 필요로 하지 않으며, 이 메모리 부분은 레가시 수단을 사용하여 관리된다. 제2부분(2)은 보다 다이나믹한 데이터 저장(예컨대, 데이터베이스 저장)을 위해 사용되고, 그러므로 그것의 원하는 내구력은 본래의 메모리 내구력보다 높은데, 본 예에서는 200%이다. 더 높은 내구력을 보증하기 위해, 이 파티션에 할당된 물리적 메모리 크기는 논리적 크기의 두배이다. 보존 영역(3)이 이 파티션에 추가되고; 이 보존 영역의 크기는 200%의 최소 내구력 레벨을 달성할 수 있도록 필요한 영역의 크기와 동일한 크기이다(최소 내구력 계산은 하기 설명 참조).
제3메모리 부분(4)은 이전의 파티션(2)과 유사한 방법으로 정의되지만, 이 제3파티션은 명목적 내구력의 5배의 내구력을 필요로 하고, 물리적 메모리의 크기는 논리적 영역의 5배이고, 예비 영역(5)은 필요한 용량의 4배이다. 플래시 관리 어플리케이션은 각각의 시간에 상이한 위치에 기록하기 때문에, 이 파티션의 내구 력은 본래의 최소 디바이스 내구력의 적어도 5배임을 보장받을 수 있다.
도 2는 비휘발성 메모리의 적어도 일부분이 특정 내구력을 제공하도록 구성된 예시적인 루틴의 플로우 차트를 제공한다. 도 2의 예에 따라, 유효 내구력은 논리적으로 어드레싱 가능한 메모리의 특정된(910) 타겟 영역에 대하여 (예컨대, 메모리 디바이스에 연결된 호스트 디바이스를 오퍼레이팅하는 사용자에 의해) 특정된다(900). 유효 내구력은 다양한 방법으로 특정(900)될 수 있음을 이해해야 한다. 제한하지 않은 한 예로서, 요구된 내구력과 원래의 내구력 사이의 비율을 나타내는 "내구력 배수"가 특정된다.
삭제
유효 내구력에 의해 특정된(900) 바와 같은 적어도 몇 배수인 논리적으로 어드레싱 가능한 메모리 내에 어드레싱하기 위해 신뢰성 있게 기록할 수 있도록 디바이스를 구성하고자 한다. 이 때문에, (예컨대, 비휘발성 메모리 디바이스의 펌웨어에 의해) 얼마나 많은 물리적 메모리가 논리적으로 어드레싱 가능한 메모리의 타겟팅된 영역에 할당될 필요가 있는지를 판단한다(902). 이러한 판단(902)의 방법에는 제한이 없고, (예컨대, 룩업 테이블 등을 사용하여, 논리적으로 어드레싱 가능한 메모리의 타겟 영역의 크기 및 특정된 유효 내구력으로부터 이러한 숫자를 계산함으로써) 주지된 임의의 기술이 본 발명의 본 실시예에 적합하다.
충분한 물리적 메모리가 사용가능한 경우에(904), 디바이스 컨트롤러는 물리적 메모리를 특정 내구력을 제공하기(906) 위해 할당한다(906) - 예컨대, 여기서 물리적 메모리의 크기는 디바이스 본래의 내구력에 의해 나누어진 원하는 내구력(900)의 비율에 의해 곱해진 논리적 크기이다.
사용가능한 물리적 메모리가 부족하다면(904), 에러 메세지(906)가 선택적으로 발생되고, 예컨대, 호스트 디바이스로 전송된다. 몇몇 실시예에 따라, 시스템이 디바이스에 기록하자마자, 디바이스 컨트롤은 다음 프리 영역을 검색하고, 논리적 블록 또는 메모리 위치를 데이터를 저장하는 물리적 위치에 매핑한다. 논리-대-물리 매핑은 하드웨어-기반 메모리 맵일 수 있는 매핑 테이블 내에 유지되거나, 펌웨어에 의해 구현될 수 있다. 매핑 테이블은 비휘발성 메모리의 특수 섹션에 백업되고, 시동 시에 재로딩된다.
지금부터 각각의 주요 타입의 비휘발성 메모리에 적합한 방법의 상세한 설명이 제공된다.
도 3은 예시적인 플래시 메모리 관리 알고리즘의 개략적인 플로우 차트를 제공한다. 이 개략적인 플로우는 증가된 내구력을 제공하는 것을 설명하기 위해 사용된다. 실제로, 미국특허 번호 제5,937,425호에 개시된 것과 같은 보다 정교한 알고리즘이 구현될 수 있다. 블록 기록 커맨드(10)는 플래시 메모리에 기록될 논리적 블록 넘버 X를 특정한다. 이 블록을 기록하기 위해, 플래시 관리 로직은 프리 블록 풀로부터 프리 블록을 할당한다. 이 프리 블록 넘버는 물리 어드레스 Y를 가진다(11). 프리 블록의 리스트가 없다면(12), 플래시 관리는 사용되지 않은 블록을 위해 메모리를 검색하고, 그 블록을 삭제하고, 프리 블록의 리스트에 그 블록을 추가한다(13). 몇몇 플래시 관리 구현에서, 하나 이상의 프리 블록이 동시에 삭제될 수 있고, 다른 구현에서, 삭제는 백그라운드 오퍼레이션으로 수행될 수 있다. 플래시 관리는 논리 블록 X이 이미 기록되었는지를 검증한다, 이는 논리 블록이 이미 물리 블록에 매핑되었음을 의미한다(15). 그러하다면, 지난 물리 블록은 "사용되지 않음"으로 표시되고(14), 그것이 삭제되자마자 프리 블록의 리스트에 추가된다. 마지막으로, 논리 블록 X는 물리 위치 Y에 기록되고, 매핑 테이블은 논리 블록 X가 Y를 포인팅하도록 업데이트된다(16).
한 파티션에 할당된 물리적 메모리의 크기를 y, 논리적 파티션의 크기를 x라하면, 플래시 메모리에 n번 기록함으로써, 각각의 위치는 평균적으로 n ×(x ÷ y)번 기록될 것이다. 프리 블록이 사용가능한, 이들 블록은 새로운 데이터를 저장하기 위해 사용될 것이다. 결과적으로, 플래시 메모리 내구력이 e번 기록 또는 삭제 사이클이라면, 새로운 최소 내구력 레벨은 e1 = e ÷ (x ÷ y)일 것이다. 예를 들어, y=20, 및 x=10이라 가정하자. 먼저, 모든 블록은 프리이고, 논리 블록 0-9에 기록하는 것은 FFS가 물리 블록 0-9에 기록하도록 한다. 데이터가 논리 블록 0-9에 다시 기록된다면, FFS는 물리 블록 10-19에 데이터를 기록할 것이다. 지금까지, 각각의 논리 블록은 두 번 기록되었으나, 각각의 물리 블록은 한번 기록되었다. 이러한 프로세스를 계속 반복한다면, 논리적 메모리의 마모는 본래의 물리적 메모리의 마모의 두 배일 것이고, 그 내구력은 두 배라고 말할 수 있다. e = 10,000이라 가정하면, 평균적인 논리적 내구력을 계산하기 위해 상기 식을 사용하면 10,000 ÷ (10 ÷ 20) = 20,000이 되고, 이는 본래의 물리적 메모리 내구력의 두배이다. 실제로 실제 내구력은 블록이 마모되면, 그것을 제외하고(배드 블록으로 표시하고) 사용하지 않기 때문에, 계산된 최소 내구력보다 훨씬 클 것이다. 많은 리둔던시 블록이 있기 때문에, 플래시 메모리는 메모리의 물리적 크기가 논리적 메모리의 크기보다 크다면 사용가능하다. 물리적 메모리의 크기가 임의의 레벨 이하로 내려가면, 그 메모리 디바이스를 교체해야 함을 사용자에게 알리기 위해 경고 메세지가 발생될 수 있다. 배드 블록 검출로 인해 얻을 수 있는 추가 내구력은 그 플래시 메모리를 사용하는 어플리케이션의 특성, 및 디바이스의 특성에 따른다. 전형적인 디바이스에서, 이러한 추가 내구력은 물리적 메모리 크기가 논리적 크기의 두 배일 때 본래의 디바이스 내구력이 열 배까지 추가될 수 있다.
유사한 방법이 NOR 플래시를 위해 구현될 수 있다. NAND 플래시와 달리, NOR 플래시 판독은 랜덤 액세스, 판독-전용 메모리와 유사하다. 예시적인 실시예에서, NOR 플래시 메모리에 대한 구성가능한 내구력의 구현은 판독/기록 요청을 수신하고, 물리적인 판독/기록 오퍼레이션을 실행하기 위한 소프트웨어 레이어를 포함할 수 있다. 하드웨어 내에 일부 로직을 구현함으로써, 메모리 디바이스로부터 직접 읽고, NOR 플래시 메모리로부터 어플리케이션를 직접 실행하는 것이 가능할 수 있다.
도 4는 유효 내구력을 제공하도록 NOR 플래시를 구성하기 위한 루틴의 예시적인 구현을 도시한다. 서브피처(100), (110), (120), (130), (140), 및 (150)는 NOR 플래시 메모리 컨텐츠의 상이한 상태를 도시하고, 서브피처(200), (210), (220), (230), (240), 및 (250)는 어드레스 매핑 테이블의 대응 상태를 나타낸다. 더 높은 내구력 레벨을 필요로 하는 NOR 플래시 메모리의 섹션(101)은 0, 1, 2, 및 3으로 넘버링된 4개의 섹션으로 분할된다. 이 4개의 섹션의 각각의 크기는 원하는 크기의 논리적 메모리와 동일하게 설정된다. 본 예에서, 물리적 메모리는 논리 메모리의 크기 보다 4배 더 크다. 먼저, 모든 블록이 삭제된다. 본 예에서, 새로운 데이터를 논리 메모리 위치 10에 기록하고자 한다. 메모리 블록 0이 삭제되었기 때문에, 데이터는 블록 0에 기록되고(101), 또한 매핑 테이블(200) 내 위치 10에 0이 기록되며(201), 이는 논리 위치 10가 블록 0에 매핑됨을 의미한다. 모든 다른 매핑 테이블 위치는 그 엔트리가 사용되지 않았음을 나타내는 -1로 초기 설정되어 있다(202), (203). 새로운 위치(111)에 기록하는 것은 이와 유사하게 수행되고, 매핑 테이블(211)은 이에 따라 업데이트된다. 논리 어드레스 10가 다시 기록되어야 할 때, 그것은 다음 물리 블록(121)에 기록되고, 매핑 테이블은 이에 따라 업데이트된다(221). 데이터가 이전에 기록되지 않았던 새로운 위치에 기록된다면, 블록 0이 사용된다(131). 위치 10에 다시 기록하는 것은 이 어드레스의 블록 넘버를 2(141), (241)로 설정할 것이다. 처음 세 블록에 위치 10을 기록한 후, 그 다음 어드레스 10는 기록되고(150), 이전에 기록된 모든 위치로부터의 모든 데이터는 제4블록(102)으로 복사되고, 처음 세 블록은 새로운 데이터를 위한 공간을 만들기 위해 삭제된다(151), (152), 및 (153). 매핑 테이블은 이에 따라 업데이트된다(251, 252), (253). 이 시점까지, 블록 3이 마지막이고, 블록 0은 처음이다; 데이터가 복사된 후, 블록 순서는 3,0,1,2로 재배열되어, 블록 3이 새로운 처음이고, 블록 2가 마지막이 된다(154).
메모리 판독 오퍼레이션이 실행될 때, 메모리 맵이 먼저 판독되고, 원하는 위치에 관련된 블록 넘버가 추출된다. 그 다음, 매핑 테이블이 포인팅하는 블록 넘버로부터 데이터가 판독된다.
도 5는 본 발명의 예시적인 실시예에 따른 랜덤 액세스 디바이스에 대한 기 록 오퍼레이션을 보여주는 플로우 차트이다. 기록 프로세스는 FFS가 관련 메모리 위치(40)를 판독하는 단계(40), 그리고 그 위치가 기록가능인지를 테스트하는 단계(41)로 시작한다. 메모리 위치는 새로운 데이터가 임의의 그 비트를 "0"에서 "1"로 설정할 필요가 없다면, 기록가능이다, 예를 들어, 메모리의 삭제된 영역은 그것이 항상 기록가능이도록 모두 1을 가진다. 16진수 F0로 기록된 메모리 바이트는 00으로 변경될 수 있지만, FF로는 변경될 수 없다. 데이터가 기록가능이면, 새로운 데이터는 원하는 위치에 기록된다(43), 그렇지 않다면, FFS는 현재 블록 넘버로 진행하고(42), 그것이 마지막 블록인지 검사한다(42). 마지막 블록이 아니면, 매핑 테이블이 업데이트되고(44), 그 다음 FFS는 그 데이터를 메모리에 기록한다. 새로운 블록이 삭제되었기 때문에, 다음 블록 내의 논리적 위치는 기록가능이다. 마지막 블록이면, 모든 다른 블록으로부터 이전에 기록된 모든 데이터가 그 마지막 블록에 복사되고, 마지막 블록을 제외한 모든 블록이 삭제되고, 매핑테이블은 모든 논리 어드레스 포인트가 마지막 메모리 블록을 포인팅하도록 업데이트된다(45).
도 6은 예시적인 판독 프로세스를 도시한다. 도 6에 도시된 실시예에 따라, 메모리 위치를 판독하기 위해, FFS는 먼저 매핑 테이블을 판독하고, 관련된 블록 넘버를 획득하고(30), 그 다음 블록 넘버와 논리적 어드레스를 결합함으로써, 물리 메모리 어드레스가 계산된다(31). 이 계산 후, 원하는 데이터가 판독된다(32).
도 7은 매핑 테이블의 예시적인 하드웨어 구현을 도시한다. 매핑 RAM(21)이각각의 메모리 위치에 대한 블록 넘버를 저장하기 위해 사용된다. 논리 어드레스(20)가 매핑 RAM 어드레스 버스에 적용되고, 매핑 RAM의 데이터 버스는 하이 어 드레스 비트(22)와 같은 블록 넘버를 비휘발성 메모리(23)에 제공한다. 매핑 RAM의 하드웨어 구현은 고속 판독 액세스 시간을 제공하고, 메모리로부터 직접적으로 코드를 실행하는 NOR 플래시 특성을 보존한다.
매핑 테이블의 크기를 줄이기 위해, 몇몇 메모리 어드레스는 함께 그룹화될 수 있다. 예를 들어, 연속적인 32개의 메모리 어드레스마다 그룹화될 수 있고, 이는 매핑 테이블의 크기를 1/32만큼 줄일 수 있어, 매핑 RAM 어드레스 비트가 5개 줄어든다(5개의 최하위 어드레스 비트는 매핑 RAM에 적용되지 않는다). 앞서 서술한 알고리즘은 블록 넘버가 변할 때마다, 동일한 그룹에 속한 모든 유효 메모리 위치가 다음 블록에 복사되어야 한다는 것을 제외하고는 거의 동일한 방법으로 동작한다. 예를 들어, 그룹의 크기가 32바이트라면, 메모리 위치(35)에 두번째 기록하는 것은 메모리 위치 32-34 및 36-63(같은 그룹에 속한 모든 위치)을 다음 블록으로 복사하는 것이 필요하다.
또한, 기록하기 전에 삭제할 필요가 없다는 점을 제외하고, 동일한 방법이 EEPROM에 대하여 적용가능하다. 이와 같이, 동일한 논리 메모리 위치가 업데이트될 때마다, 데이터는 다음 메모리 블록에 기록된다.
랜덤 액세스 디바이스의 새로운 내구력의 계산은 논-랜덤 액세스 디바이스에 대하여 상술했던 것과 동일하다. 논-랜덤 액세스 디바이스와 함께, 최소 보장 내구력은 물리 메모리 크기와 논리 메모리 크기의 비율과 직접적으로 비례한다.
본 출원의 명세서 및 청구항 내에서, "포함한다", 및 "갖추다"라는 각각의 동사, 및 그 활용형은 그 동사의 목적어가 그 동사의 주어 또는 주어의 부재, 컴포 넌트, 엘리먼트, 또는 부분의 필수적이지 않은 완전한 리스트임을 나타내기 위해 사용되었다.
본 발명은 예시적인 방법으로 제공되었고 본 발명의 범위를 제한하지 않는 실시예의 상세한 설명을 사용하여 서술되었다. 서술된 실시예는 본 발명의 모든 실시예에서 모두 필수적인 것은 아닌 다양한 특징을 포함한다. 본 발명의 몇몇 실시예는 몇몇 특징만 또는 그 특징들의 가능한 조합을 사용한다. 상술된 본 발명의 실시예의 변형, 및 상술된 실시예에 언급된 특징의 상이한 조합을 포함하는 본 발명의 실시예가 당업자들에게 가능하다. 본 발명의 범위는 첨부된 청구항에 의해서만 한정된다.

Claims (66)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 비휘발성 메모리; 및
    논리적으로 어드레싱가능한 메모리를 포함하는 데이터 오퍼레이션에 대하여 물리적 메모리의 복수의 블록을 할당함으로써 물리적 메모리를 구성하도록 동작하는 컨트롤러;를 포함하고,
    물리적 메모리의 복수의 블록의 각 블록은, 논리적으로 어드레싱가능한 메모리의 원하는 크기와 동일한 물리적 메모리의 크기를 갖도록 할당되고, 상기 논리적으로 어드레싱가능한 메모리의 특정 위치에 대한 기록 오퍼레이션에 대한 각각의 요청은, 각각의 요청에 대하여, 상기 논리적으로 어드레싱가능한 메모리의 상기 특정 위치에 대하여 이전에 기록되지 않았던 물리적 메모리의 복수의 블록의 메모리 블록에 데이터를 한번 기록함으로써 처리되고,
    상기 컨트롤러는, 논리적으로 어드레싱가능한 메모리의 특정 위치에 대한 제1 기록 요청 오퍼레이션이 물리적 메모리의 복수의 블록의 제1 블록 내의 제1 위치에 데이터를 기록함으로써 처리되고, 논리적으로 어드레싱가능한 메모리의 특정 위치에 대한 각각의 후속 기록 요청 오퍼레이션이 블록들 중 하나의 블록, 즉, 마지막 블록을 제외한 모든 블록이 논리적으로 어드레싱가능한 메모리의 특정 위치에 대한 데이터를 가지고 기록될 때까지 물리적 메모리의 복수의 블록 중 상이한 블록 내의 제1 위치에 데이터를 기록함으로써 처리되도록, 물리적 메모리를 구성하기 위해 더 동작하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  54. 제 53 항에 있어서, 상기 컨트롤러는, 상기 논리적으로 어드레싱 가능한 메모리의 상기 특정 위치에 대하여 이전에 기록되지 않았던 마지막 하나의 메모리 블록만 남았을 때, 이전에 기록된 메모리 블록으로부터의 데이터가 상기 마지막 메모리 블록에 기록되고, 상기 이전에 기록된 메모리 블록의 상기 위치가 기록 오퍼레이션에 대한 새로운 요청을 받아들이기 위해 삭제되도록, 물리적 메모리를 구성하도록 더 동작하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  55. 제 53 항에 있어서, 상기 컨트롤러는 상기 물리적 메모리의 블록에 대한 유효 내구력을 특정하도록 더 동작하고, 그로인해 상기 유효 내구력은 상기 물리적 메모리와 연관된 원래의 내구력을 능가하고, 상기 할당된 복수의 블록의 전체 개수는 상기 원래의 내구력에 대한 상기 유효 내구력의 비율에 비례하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  56. 제 53 항에 있어서, 상기 컨트롤러는 상기 논리적으로 어드레싱가능한 메모리의 상기 특정 위치를 각각의 기록 오퍼레이션 후에 상기 물리적 메모리의 블록 내의 위치에 맵핑시키도록 더 동작하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  57. 제 55 항에 있어서, 상기 유효 내구력에 대한 값을 수신하는 인터페이스를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  58. 제 53 항에 있어서, 상기 컨트롤러는 상기 비휘발성 메모리의 상이한 부분에 대하여 상이한 유효 내구력을 설정하도록 더 동작하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  59. 제 55 항에 있어서, 상기 특정된 유효 내구력을 달성하기 위해 상기 논리적으로 어드레싱가능한 메모리의 크기가 감소되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  60. 제 55 항에 있어서, 상기 특정된 유효 내구력을 달성하기 위해 상기 물리적 메모리의 크기가 증가되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  61. 비휘발성 메모리 디바이스의 동작 방법으로서,
    (a) 논리적으로 어드레싱가능한 메모리의 원하는 크기를 식별하는 단계;
    (b) 논리적으로 어드레싱가능한 메모리의 타겟 영역에 대한 유효 내구력을 특정하는 단계;
    (c) 논리적으로 어드레싱가능한 메모리를 포함하는 데이터 오퍼레이션에 대하여 물리적 메모리의 복수의 블록을 할당함으로써 물리적 메모리를 구성하는 단계;
    (d) 논리적으로 어드레싱가능한 메모리의 제1 특정 위치에 대한 제1 기록 오퍼레이션에서, 물리적 메모리의 복수의 블록의 제1 블록 내의 제1 위치에 데이터를 기록하는 단계;
    (e) 논리적으로 어드레싱가능한 메모리의 상기 제1 특정 위치에 대한 각각의 후속 기록 오퍼레이션에서, 각각의 이러한 기록 오퍼레이션에 대하여, 블록들 중 하나의 블록, 즉, 마지막 블록을 제외한 모든 블록이 논리적으로 어드레싱가능한 메모리의 상기 제1 특정 위치에 대한 데이터를 가지고 기록될 때까지, 물리적 메모리의 복수의 블록 중 상이한 블록 내의 제1 위치에 데이터를 기록하고, 그리고 그러한 경우에, 논리적으로 어드레싱가능한 메모리의 상기 제1 특정 위치에 대하여 이전에 기록된 물리적 메모리의 복수의 블록의 각각의 위치로부터 데이터를 상기 마지막 블록으로 복사하는 단계; 및
    (f) 논리적으로 어드레싱가능한 메모리의 상기 제1 특정 위치에 대하여 이전에 기록된 메모리 블록의 상기 제1 위치를 삭제하고, 그런 다음 상기 논리적으로 어드레싱가능한 메모리의 상기 제1 특정 위치에 대하여 요구되는 만큼 (d) 내지 (f) 단계를 반복하는 단계를 포함하고,
    상기 유효 내구력은 상기 물리적 메모리의 복수의 블록에 대한 원래의 내구력을 능가하고,
    물리적 메모리의 복수의 블록의 각 블록은, 상기 논리적으로 어드레싱가능한 메모리의 원하는 크기에 내구력 배수를 곱한 것과 동일한 물리적 메모리의 크기를 갖도록 할당되는 것을 특징으로 하는 비휘발성 메모리 디바이스의 동작 방법.
  62. 제 61 항에 있어서, 상기 할당된 복수의 블록의 전체 개수는 상기 원래의 내구력에 대한 유효 내구력의 비율과 비례하는 것을 특징으로 하는 비휘발성 메모리 디바이스의 동작 방법.
  63. 제 61 항에 있어서,
    각각의 기록 오퍼레이션 후, 상기 논리적으로 어드레싱가능한 메모리의 상기 제1 특정 위치를 물리적 메모리의 블록 내의 제1 위치에 맵핑하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 디바이스의 동작 방법.
  64. 제 61 항에 있어서,
    (g) 논리적으로 어드레싱가능한 메모리의 상이한 특정 위치에 대한 제1 기록 오퍼레이션에서, 물리적 메모리의 복수의 블록의 제1 블록 내의 상이한 위치에 데이터를 기록하는 단계;
    (h) 논리적으로 어드레싱가능한 메모리의 상기 상이한 특정 위치에 대한 각각의 후속 기록 오퍼레이션에서, 각각의 이러한 기록 오퍼레이션에 대하여, 블록들 중 하나의 블록, 즉, 마지막 블록을 제외한 모든 블록이 논리적으로 어드레싱가능한 메모리의 상기 상이한 특정 위치에 대한 데이터를 가지고 기록될 때까지, 물리적 메모리의 복수의 블록 중 상이한 블록 내의 상이한 위치에 데이터를 기록하고, 그리고 그러한 경우에, 논리적으로 어드레싱가능한 메모리의 상기 상이한 특정 위치에 대하여 이전에 기록된 물리적 메모리의 복수의 블록의 각각의 위치로부터 데이터를 상기 마지막 블록으로 복사하는 단계; 및
    (i) 논리적으로 어드레싱가능한 메모리의 상기 상이한 특정 위치에 대하여 이전에 기록된 메모리 블록의 상기 상이한 위치를 삭제하고, 그런 다음 상기 논리적으로 어드레싱가능한 메모리의 상기 상이한 특정 위치에 대하여 요구되는 만큼 단계 (g) 내지 (i)를 반복하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 디바이스의 동작 방법.
  65. 제 62 항에 있어서, 상기 특정하는 단계는 상기 유효 내구력을 특정하는 외부 커맨드를 수신하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 디바이스의 동작 방법.
  66. 제 61 항의 방법을 수행하기 위한 실행가능한 명령어를 구비한 컴퓨터 판독가능한 매체.
KR1020077030016A 2005-06-08 2006-06-06 프로그램 가능한 내구력을 가진 플래시 메모리 KR101110785B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US68823305P 2005-06-08 2005-06-08
US60/688,233 2005-06-08
US11/271,880 US20060282610A1 (en) 2005-06-08 2005-11-14 Flash memory with programmable endurance
US11/271,880 2005-11-14
PCT/IL2006/000656 WO2006131915A2 (en) 2005-06-08 2006-06-06 Flash memory with programmable endurance

Publications (2)

Publication Number Publication Date
KR20080021684A KR20080021684A (ko) 2008-03-07
KR101110785B1 true KR101110785B1 (ko) 2012-02-24

Family

ID=37498834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077030016A KR101110785B1 (ko) 2005-06-08 2006-06-06 프로그램 가능한 내구력을 가진 플래시 메모리

Country Status (6)

Country Link
US (1) US20060282610A1 (ko)
EP (1) EP1891529B1 (ko)
JP (1) JP4837731B2 (ko)
KR (1) KR101110785B1 (ko)
CN (1) CN101535963A (ko)
WO (1) WO2006131915A2 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL363945A1 (en) * 2003-12-08 2005-06-13 Advanced Digital Broadcast Polska Spółka z o.o. Software method for eeprom memory emulation
CN101484882B (zh) * 2005-12-09 2013-10-02 晟碟以色列有限公司 闪存管理方法
US7623378B1 (en) * 2006-05-02 2009-11-24 Lattice Semiconductor Corporation Selective programming of non-volatile memory facilitated by security fuses
JP5019567B2 (ja) * 2006-08-04 2012-09-05 ソニーモバイルコミュニケーションズ株式会社 メモリ管理方法および携帯端末装置
US8122220B1 (en) 2006-12-20 2012-02-21 Marvell International Ltd. Memory usage in imaging devices
US7646636B2 (en) 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
US7774525B2 (en) * 2007-03-13 2010-08-10 Dell Products L.P. Zoned initialization of a solid state drive
US20090013148A1 (en) * 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
JP2009230205A (ja) * 2008-03-19 2009-10-08 Toshiba Corp メモリシステム
US8484432B2 (en) * 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
JP2009244962A (ja) * 2008-03-28 2009-10-22 Toshiba Corp メモリシステム
US20100057976A1 (en) * 2008-08-26 2010-03-04 Menahem Lasser Multiple performance mode memory system
US8447913B2 (en) * 2008-09-16 2013-05-21 International Business Machines Corporation Method to monitor read/write status of flash memory devices
US8244959B2 (en) * 2008-11-10 2012-08-14 Atmel Rousset S.A.S. Software adapted wear leveling
JP5346626B2 (ja) * 2009-03-09 2013-11-20 キヤノン株式会社 管理装置及び管理方法及びプログラム
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
JP2010287049A (ja) * 2009-06-11 2010-12-24 Toshiba Corp メモリシステムおよびメモリシステムの管理方法
US8201020B2 (en) * 2009-11-12 2012-06-12 International Business Machines Corporation Method apparatus and system for a redundant and fault tolerant solid state disk
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US8516213B2 (en) 2010-11-24 2013-08-20 Freescale Semiconductor, Inc. Method and apparatus for EEPROM emulation for preventing data loss in the event of a flash block failure
US8464137B2 (en) 2010-12-03 2013-06-11 International Business Machines Corporation Probabilistic multi-tier error correction in not-and (NAND) flash memory
US20120159040A1 (en) * 2010-12-15 2012-06-21 Dhaval Parikh Auxiliary Interface for Non-Volatile Memory System
US20120185638A1 (en) * 2011-01-14 2012-07-19 Daniel Schreiber Method and system for cache endurance management
US9501392B1 (en) * 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
FR2977047B1 (fr) * 2011-06-22 2013-08-16 Starchip Procede de gestion de l'endurance de memoires non volatiles.
JP4988054B2 (ja) * 2011-08-12 2012-08-01 株式会社東芝 メモリシステム
US9037779B2 (en) 2011-12-19 2015-05-19 Sandisk Technologies Inc. Systems and methods for performing variable flash wear leveling
US9218881B2 (en) 2012-10-23 2015-12-22 Sandisk Technologies Inc. Flash memory blocks with extended data retention
US9569354B2 (en) * 2013-08-02 2017-02-14 Infineon Technologies Ag System and method to emulate an electrically erasable programmable read-only memory
US9753649B2 (en) * 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US11086775B2 (en) 2014-12-11 2021-08-10 Toshiba Memory Corporation Information processing device, non-transitory computer readable recording medium, and information processing system
US9977734B2 (en) * 2014-12-11 2018-05-22 Toshiba Memory Corporation Information processing device, non-transitory computer readable recording medium, and information processing system
KR102396053B1 (ko) 2015-04-20 2022-05-10 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작 방법
US10346039B2 (en) 2015-04-21 2019-07-09 Toshiba Memory Corporation Memory system
US10445232B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Determining control states for address mapping in non-volatile memories
US10445251B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US10452533B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Access network for address mapping in non-volatile memories
US9921969B2 (en) 2015-07-14 2018-03-20 Western Digital Technologies, Inc. Generation of random address mapping in non-volatile memories using local and global interleaving
US10452560B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
US10643700B2 (en) 2015-10-29 2020-05-05 Micron Technology, Inc. Apparatuses and methods for adjusting write parameters based on a write count
CN107346211B (zh) * 2016-05-06 2020-03-31 合肥兆芯电子有限公司 映射表加载方法、存储器控制电路单元与存储器储存装置
US10489064B2 (en) * 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory
US10613790B1 (en) * 2016-12-30 2020-04-07 EMC IP Holding Company LLC Mitigating flash wear when performing storage tiering
EP3612922A1 (en) * 2017-06-12 2020-02-26 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
KR102545167B1 (ko) * 2017-11-23 2023-06-19 삼성전자주식회사 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
US10585795B2 (en) * 2018-05-31 2020-03-10 Micron Technology, Inc. Data relocation in memory having two portions of data
US10713158B2 (en) 2018-06-28 2020-07-14 Western Digital Technologies, Inc. Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring
JP6545876B2 (ja) * 2018-08-27 2019-07-17 東芝メモリ株式会社 メモリシステム
US10795576B2 (en) * 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory
JP6716757B2 (ja) * 2019-06-19 2020-07-01 キオクシア株式会社 メモリシステムおよび制御方法
US11416161B2 (en) * 2019-06-28 2022-08-16 Western Digital Technologies, Inc. Zone formation for zoned namespaces
US11379031B2 (en) * 2020-06-30 2022-07-05 Western Digital Technologies, Inc. Power-endurance modes for data center solid-state drives
US11782634B2 (en) * 2020-09-28 2023-10-10 EMC IP Holding Company LLC Dynamic use of non-volatile ram as memory and storage on a storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341085B1 (en) * 1991-11-26 2002-01-22 Hitachi, Ltd. Storage device employing a flash memory
US6400634B1 (en) * 1997-12-23 2002-06-04 Macronix International Co., Ltd. Technique for increasing endurance of integrated circuit memory

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63181190A (ja) * 1987-01-23 1988-07-26 Nippon Telegr & Teleph Corp <Ntt> 情報記憶方法
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US5345413A (en) * 1993-04-01 1994-09-06 Microchip Technology Incorporated Default fuse condition for memory device after final test
US5367484A (en) * 1993-04-01 1994-11-22 Microchip Technology Incorporated Programmable high endurance block for EEPROM device
JP3494676B2 (ja) * 1993-09-06 2004-02-09 富士フイルムマイクロデバイス株式会社 不揮発性半導体記憶装置とデータ書換/読出方法
JPH07211089A (ja) * 1994-01-11 1995-08-11 Tamura Electric Works Ltd メモリ書込制御方式
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JPH1063582A (ja) * 1996-08-26 1998-03-06 Jatco Corp 車両用制御装置
US5793684A (en) * 1997-07-10 1998-08-11 Microchip Technology Incorporated Memory device having selectable redundancy for high endurance and reliability and method therefor
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JP2001051909A (ja) * 1999-08-05 2001-02-23 Matsushita Electric Ind Co Ltd 携帯型通信端末機
US6950336B2 (en) * 2000-05-03 2005-09-27 Emosyn America, Inc. Method and apparatus for emulating an electrically erasable programmable read only memory (EEPROM) using non-volatile floating gate memory cells
TWI240864B (en) * 2001-06-13 2005-10-01 Hitachi Ltd Memory device
JP4019306B2 (ja) * 2001-11-08 2007-12-12 株式会社Ihi Eepromへの記録方法
US20030163633A1 (en) * 2002-02-27 2003-08-28 Aasheim Jered Donald System and method for achieving uniform wear levels in a flash memory device
JP2004071033A (ja) * 2002-08-05 2004-03-04 Mitsubishi Electric Corp フラッシュメモリのデータ記録法
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
JP4218406B2 (ja) * 2003-04-25 2009-02-04 富士フイルム株式会社 情報記録再生方法
US7188228B1 (en) * 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7082490B2 (en) * 2003-10-20 2006-07-25 Atmel Corporation Method and system for enhancing the endurance of memory cells
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341085B1 (en) * 1991-11-26 2002-01-22 Hitachi, Ltd. Storage device employing a flash memory
US6400634B1 (en) * 1997-12-23 2002-06-04 Macronix International Co., Ltd. Technique for increasing endurance of integrated circuit memory

Also Published As

Publication number Publication date
EP1891529A2 (en) 2008-02-27
JP2009503629A (ja) 2009-01-29
EP1891529B1 (en) 2013-04-10
KR20080021684A (ko) 2008-03-07
WO2006131915A2 (en) 2006-12-14
JP4837731B2 (ja) 2011-12-14
WO2006131915A3 (en) 2009-05-22
US20060282610A1 (en) 2006-12-14
EP1891529A4 (en) 2009-11-25
CN101535963A (zh) 2009-09-16

Similar Documents

Publication Publication Date Title
KR101110785B1 (ko) 프로그램 가능한 내구력을 가진 플래시 메모리
CN109144888B (zh) 存储器系统
KR100946286B1 (ko) 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템
US9489301B2 (en) Memory systems
US7426623B2 (en) System and method for configuring flash memory partitions as super-units
US8332574B2 (en) Method for efficient storage of metadata in flash memory
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
EP2042995B1 (en) Storage device and deduplication method
US9990277B2 (en) System and method for efficient address translation of flash memory device
US20110231597A1 (en) Data access method, memory controller and memory storage system
EP1909184A2 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
US20060277388A1 (en) Method of storing control information in a large-page flash memory device
JP6908789B2 (ja) マルチレベルアドレッシング
JP2005242897A (ja) フラッシュディスク装置
JP4301301B2 (ja) 不揮発性半導体記憶装置およびその管理方法
CN112840325B (zh) 存储装置上的名称空间中的错误检查
KR20080033649A (ko) 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법
TW202230110A (zh) 記憶體系統及控制方法
JP5520880B2 (ja) フラッシュメモリ装置
JP5180726B2 (ja) 記憶装置およびデータ書き込み制御方法
CN117555478A (zh) 一种基于闪存的模拟eeprom读写方法
JP2021068129A (ja) メモリコントローラ及びフラッシュメモリシステム
WO2006093304A1 (en) Storage device, memory block managing method, and program
JP2009026062A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法

Legal Events

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

Payment date: 20150105

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 9