KR102419541B1 - 동적 캐시 관리 기능이 있는 메모리 디바이스 - Google Patents

동적 캐시 관리 기능이 있는 메모리 디바이스 Download PDF

Info

Publication number
KR102419541B1
KR102419541B1 KR1020207009337A KR20207009337A KR102419541B1 KR 102419541 B1 KR102419541 B1 KR 102419541B1 KR 1020207009337 A KR1020207009337 A KR 1020207009337A KR 20207009337 A KR20207009337 A KR 20207009337A KR 102419541 B1 KR102419541 B1 KR 102419541B1
Authority
KR
South Korea
Prior art keywords
memory
data
mode
slc
valid data
Prior art date
Application number
KR1020207009337A
Other languages
English (en)
Other versions
KR20200037882A (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 KR20200037882A publication Critical patent/KR20200037882A/ko
Application granted granted Critical
Publication of KR102419541B1 publication Critical patent/KR102419541B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/064Management of blocks
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

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)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 시스템은 복수의 메모리 셀을 갖는 메모리 어레이; 및 상기 메모리 어레이에 연결되는 제어기로서: 유효 데이터를 저장하는 가비지 수집(GC, garbage collection) 소스 블록을 선택하도록, 상기 GC 소스 블록 내 상기 유효 데이터의 양을 나타내기 위해 상기 GC 소스 블록에 대한 유효 데이터 측정값을 계산하도록, 그리고 상기 유효 데이터 측정값에 기초하여 이용 가능한 메모리 블록에 대한 저장 모드를 지정하도록 구성된, 상기 제어기를 포함하며, 상기 저장 모드는 후속 또는 다음 데이터 쓰기를 위해 각각의 상기 메모리 셀들마다 저장된 비트 수를 제어하기 위한 것이다.

Description

동적 캐시 관리 기능이 있는 메모리 디바이스
개시된 실시 예들은 메모리 디바이스들, 특히 캐시 메모리 기능들의 동적 관리를 위한 메커니즘을 갖는 메모리 디바이스들에 관한 것이다.
메모리 시스템들은 정보를 저장하고 액세스하기 위해 메모리 디바이스들을 채용할 수 있다. 메모리 디바이스들은 휘발성 메모리 디바이스들, 비휘발성 메모리 디바이스들 또는 조합 디바이스를 포함할 수 있다. 비휘발성 메모리 디바이스들은 "NAND" 기술 또는 로직 게이트들, "NOR" 기술 또는 로직 게이트들 또는 이들의 조합을 채용하는 플래시 메모리를 포함할 수 있다.
플래시 메모리와 같은 메모리 디바이스들은 대응하는 임계치 레벨들 또는 처리 전압 레벨들과 함께 전하들을 이용하여 데이터를 저장하고 액세스한다. 데이터를 저장 시, 메모리 디바이스들은 보다 빠른 동작 속도를 제공하는 일부 저장 부분 및 보다 높은 저장 용량 및/또는 밀도를 제공하는 다른 저장 부분들을 가질 수 있다. 이러한 다양한 기능들을 최대한 활용하기 위해 메모리 디바이스들을 최적화하려는 시도들이 이루어져 왔지만, 다양한 과제(예를 들어, 많은 상이한 사용 조건, 사용으로 인한 플래시 메모리 디바이스들의 성능 특성 변화 등)가 상이한 특성들을 충분히 이용하기 어렵게 만들었다.
따라서, 동적 캐시 관리 기능이 있는 메모리 디바이스가 요구된다. 소비자의 기대 증가와 시장에서 제품들을 차별화하려는 욕구와 함께 상업적 경쟁력이 점점 증가하는 것을 고려할 때, 이러한 문제들에 대한 해답들을 찾는 것이 점점 더 요구되고 있다. 또한, 비용을 절감하고 효율성과 성능을 향상시키며 경쟁력을 만족시켜야 할 필요성으로 인해 이러한 해답들을 찾아야 하는 압력이 점점 커진다.
도 1은 본 기술의 일 실시 예에 따른 동적 캐시 관리 기능이 있는 메모리 시스템의 블록도이다.
도 2a, 도 2b 및 도 2c는 본 기술의 일 실시 예에 따른 가비지 수집 기능을 도시한다.
도 3은 본 기술의 실시 예들에 따라 도 1의 메모리 시스템을 동작시키는 예시적인 방법을 도시한다.
도 4는 본 기술의 실시 예들에 따른 메모리 디바이스를 포함하는 시스템의 개략도이다.
여기에 개시된 기술은 메모리 디바이스들, 메모리 디바이스들을 갖는 시스템들 및 메모리 디바이스들을 위한 캐시 메모리를 동적으로 관리하기 위한 관련 방법들에 관한 것이다. 메모리 시스템들은 가비지 수집의 소스 블록들에서 찾아지는 유효 데이터를 사용하여 메모리 시스템들에 의해 처리되는 작업의 유형 또는 패턴을 결정 또는 인식하고 그에 따라 캐싱 기능을 관리할 수 있다.
메모리 디바이스는 메모리 디바이스에 의해 처리되는 작업의 유형 또는 특성에 따라 셀마다 1 비트를 (예를 들어, 두 전하 레벨 중 하나로) 보유하거나 나타내기 위한 단일 레벨 셀들(SLC들, single-level cells) 및/또는 셀마다 다중 비트를 (예를 들어, 둘보다 많은 전하 레벨 중 하나로) 보유하거나 나타내기 위한 추가 레벨 셀들(XLC들, extra-level cells)을 포함할 수 있다. SLC는 2진 단위들 1 또는 0으로 나타내어질 수 있는 두 개의 상이한 데이터 상태 중 타겟이 되는 하나로 프로그래밍될 수 있다. XLC는 둘보다 많은 데이터 상태 중 타겟이 되는 하나로 프로그래밍될 수 있다.
예를 들어, XLC는 2 비트의 데이터를 저장하기 위해 네 개의 상태(예를 들어, 이진 00, 01, 10, 11로 나타내어짐) 중 어느 하나로 프로그래밍될 수 있는 플래시 메모리 셀을 포함할 수 있다. 그러한 XLC들은 다중 레벨 셀들(MLC들, multilevel cells)로 알려져 있다. 또 다른 XLC들은 단일 셀에 3 비트의 데이터를 저장하기 위해 여덟 개의 데이터 상태(예를 들어, 000, 001, 010, 011, 100, 101, 110, 111) 중 어느 하나로 프로그래밍될 수 있는 플래시 메모리 셀들을 포함할 수 있다. 그러한 셀들은 삼중 레벨 셀들(TLC, triple level cells)로 지칭될 수 있다. XLC들로는 훨씬 더 높은 수의 데이터 상태가 가능하다. 예를 들어, 사중 레벨 셀들(QLCs, quad level cells)은 4 비트의 데이터를 저장하기 위해 16개의 데이터 상태(예를 들어, 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111) 중 임의의 하나로 프로그래밍될 수 있다.
더 높은 수의 데이터 상태를 저장할 수 있는 메모리 셀들은 각 셀이 하나보다 많은 비트를 나타낼 수 있기 때문에, 메모리 셀들의 수를 증가시키지 않고 더 높은 밀도의 메모리들 또는 벌크 메모리를 제공할 수 있다. XLC들로 동작할 때 소정의 수의 셀에 더 많은 정보가 저장될 수 있지만, XLC들에 필요한 프로그래밍 시간이 느려져 쓰기 성능이 저하될 수 있다. 예를 들어, 소정의 범위 내에서 가능한 데이터 상태들의 수를 증가시킴으로써 감소하는 허용 오차 윈도우들에 따라 데이터를 쓰기 위한 추가 또는 상세한 프로세스들을 채용함에있어서 쓰기 성능이 저하될 수 있다. 그에 따라, SLC들이 NAND 플래시 메모리 디바이스들을 위한 캐시 메모리로서 사용될 수 있다. SLC 캐시는 SLC 예비 블록들에 의해 획정되는 정적 SLC 캐시 또는 XLC 블록들을 SLC 모드로 사용함으로써 획정되는 동적 SLC 캐시를 포함할 수 있다.
SLC 캐시는 호스트 데이터를 처리하는 동안 발생하는 중단 또는 일시 정지와 같은 유휴 시간 동안 발생 또는 환원될 수 있으므로, 호스트 데이터가 SLC 모드로 쓰여질 수 있게 된다. 그러나, 유휴 시간은 특정 작업 조건들에서 덜 빈번하게 발생할 수 있으며, 이는 메모리 디바이스들이 쓰기를 위한 충분한 양의 블록을 해제하지 못함에 따라 호스트 쓰기 크기들을 따라잡지 못하게 할 수 있다.
통상적으로, 메모리 디바이스들은 XLC 블록 풀들(pools)로부터 새로운 호스트 블록들(즉, 다음 또는 후속 쓰기를 위해 지정된 메모리 블록들)을 선택하고, 그에 따라 후속 호스트 데이터를 XLC 모드로 쓰기하여, 블록 크기들을 증가시키고 블록 소비 속도를 늦춘다. 그 결과, SLC 모드와 비교하여 XLC 모드를 사용하면 쓰기 성능이 저하될 것이다. 정상 상태(즉, 데이터 저장에서 일시 정지를 나타내는 유휴 시간 이벤트를 검출하기 전에 미리 결정된 수의 메모리 블록 또는 페이지가 채워지는 때와 같이, 유휴 시간이 덜 빈번한 작업 조건들) 하에서, XLC 메모리 블록들을 SLC 모드로 동작시키면 메모리 블록들의 유효 크기를 줄여, 저장 용량을 줄이다. 예를 들어, 2 비트를 나타낼 수 있는 블록들의 경우, SLC 모드로 동작시키면 용량이 절반으로 줄어들 것이다. 또한 예를 들어, TLC 메모리 블록들을 SLC 모드로 동작시키면 용량이 원래의 1/3로 줄고, QLC 블록들은 1/4로 줄어드는 등일 것이다. 이를테면 상기한 예들에서 나머지 사용되지 않는 1/2, 2/3 또는 3/4에 대응하는 용량 감소로 인해 손실되는 잠재적 주소들은 특정 유형들의 작업 부하들에 대해 가비지 수집(garbage collection)(즉, 새로운 데이터를 저장하기 위해 오래된 또는 소용이 없는 데이터를 소거하고 점유된 메모리 블록들을 환원하는 프로세스)에 넣어질 수 있다.
대신, 본 기술의 몇몇 실시 예에서, 메모리 디바이스는 메모리 블록들의 동작 모드들을 관리하기 위해 가비지 수집의 대상이 되는 메모리 블록에서의 유효 데이터를 추적할 수 있다. 메모리 디바이스는 메모리 디바이스에 의해 수행되는 작업과 연관된 쓰기 증폭(WA, write amplification)의 표시로서 유효 데이터의 양을 사용할 수 있으며, 여기서 WA는 (예를 들어, 셀들에 걸친 쓰기 횟수를 짝수로 하는 동작들, 메모리 블록들을 환원하는 동작들 등과 연관된 다시 쓰기로 인해) 메모리 디바이스에 물리적으로 쓰기되는 정보의 실제 대응하는 양과 비교하여 메모리 디바이스(102)에 쓰기되도록 의도되는 데이터의 크기를 나타낸다. 유효 데이터가 임계치 미만인 경우, 메모리 디바이스는 작업을 로우 WA로 특성화하고 정상 상태 하에서도 호스트 블록들을 SLC 모드로 개방할 수 있으므로, 메모리 디바이스의 성능을 향상시킨다.
또한, 여기서 사용되는 용어 "동적"은 메모리 디바이스의 동작, 사용 또는 전개 동안 발생하는 동작들, 기능들, 행위들 또는 구현을 설명한다. 동적으로 발생하는 동작들, 기능들, 행위들 또는 구현은 설계, 제조 및 초기 테스트, 셋업 또는 설정(예를 들어, 사용자 환경에서의) 후에 발생할 수 있다.
도 1은 본 기술의 일 실시 예에 따른 동적 캐시 관리 기능이 있는 메모리 시스템(100)의 블록도이다. 메모리 시스템(100)은 메모리 어레이(104)(예를 들어, NAND 플래시)를 갖는 메모리 디바이스(102) 및 제어기(106)를 포함한다. 메모리 디바이스(102)는 메모리 어레이(104)를 호스트 디바이스(108)(예를 들어, 업스트림 중앙 프로세서(CPU))에 작동 가능하게 연결시킬 수 있다.
메모리 어레이(104)는 데이터를 저장하고 데이터에 대한 액세스를 제공하도록 구성된 회로를 포함할 수 있다. 메모리 어레이(104)는 컴퓨터 또는 다른 전자 디바이스들에 반도체, 집적 회로들 및/또는 외부 이동식 디바이스들로서 제공될 수 있다. 메모리 어레이(104)는 복수의 메모리 영역, 또는 메모리 유닛(120)을 포함한다. 메모리 유닛들(120)은 개별 메모리 다이들, 단일 메모리 다이 내의 메모리 평면들, 실리콘 관통 비아들(TSV들, through-silicon vias)과 수직으로 연결되는 메모리 다이들의 스택 등일 수 있다. 일 실시 예에서, 각각의 메모리 유닛들(120)은 반도체 다이로 형성되고 다른 메모리 유닛 다이들과 단일 디바이스 패키지(도시되지 않음)로 배열될 수 있다. 다른 실시 예들에서, 메모리 유닛들(120)의 하나 이상이 단일 다이 상에 공존될 수 있고/거나 다수의 디바이스 패키지에 걸쳐 분산될 수 있다. 메모리 디바이스(102) 및/또는 개별 메모리 유닛들(120)은 또한 데이터에 액세스 및/또는 데이터를 프로그래밍(예를 들어, 쓰기)하기 위해, 이를테면 정보를 프로세싱하고/거나 제어기(106)와 통신하기 위한 다른 기능을 위해, 멀티플렉서, 디코더, 버퍼, 읽기/쓰기 드라이버, 어드레스 레지스터, 레지스터의 데이터 출력/데이터 입력 등과 같은 다른 회로 구성요소들(도시되지 않음)을 포함할 수 있다.
각각의 메모리 유닛들(120)은 전하 저장 구조에 데이터를 각각 저장하는 메모리 셀들의 어레이(122)를 포함한다. 메모리 셀들(122)은 예를 들어, 플로팅 게이트, 전하 트랩, 상 변화, 강유전성, 자기 저항성 및/또는 데이터를 영구적으로 또는 반영구적으로 저장하도록 구성된 다른 적합한 저장 요소들을 포함할 수 있다. 메모리 셀들(122)은 정보를 나타내기 위해 타겟 상태로 프로그래밍될 수 있는 1-트랜지스터 메모리 셀들일 수 있다. 예를 들어, 메모리 셀(122)을 특정 데이터 상태로 프로그래밍하기 위해 전하가 셀의 전하 저장 구조(예를 들어, 전하 트랩 또는 플로팅 게이트) 상에 배치되거나 그것에서 제거될 수 있다.
메모리 셀(122)의 전하 저장 구조 상에 저장된 전하는 셀의 임계 전압(Vt)을 나타낼 수 있다. 임계 전압은 대응하는 메모리 셀(122)에 허용 가능한 상이한 데이터 상태들에 대응할 수 있다. 예를 들어, SLC들은 이진 단위들 1 또는 0으로 나타내어질 수 있는 두 개의 상이한 데이터 상태 중 타겟이 되는 하나로 프로그래밍될 수 있다. 유사하게, 임계 전압은 MLC들의 경우 네 데이터 상태, TLC들의 경우 여덟 개의 데이터 상태, QLC들의 경우 16개의 데이터 상태 등에 대응할 수 있다.
메모리 셀들(122)은 로우들(예를 들어, 각각이 워드 라인에 대응) 및 컬럼들(예를 들어, 각각이 비트 라인에 대응)로 배열될 수 있다. 각 워드 라인은 해당 워드 라인의 메모리 셀들(122)이 저장하도록 구성된 데이터 상태들의 수에 따라, 하나 이상의 메모리 페이지(124)를 포함할 수 있다.
예를 들어, 단일 워드 라인(즉, 단일 메모리 페이지(124)를 포함하는)의 메모리 셀들(122) 은 각각 두 데이터 상태 중 하나를 저장할 수 있다(예를 들어, 각각 1 비트를 저장하도록 구성된 SLC 메모리 셀들). 대안적으로, 단일 워드 라인(즉, 두 개의 메모리 페이지(124)를 포함하는)의 메모리 셀들(122) 은 각각 네 데이터 상태 중 하나를 저장하고(예를 들어, 각각 2 비트를 저장하도록 구성된 MLC 메모리 셀들) 두 개의 메모리 페이지(124)를 포함할 수 있다. 또한, 워드 라인 내에서, 페이지들(124)은 "짝수-홀수 비트 라인 아키텍처"에서(예를 들어, 여기서는 단일 워드 라인의 홀수 번째 컬럼들에서의 모든 메모리 셀(122)이 제 1 페이지로서 그룹화되고, 동일한 워드의 짝수 번째 컬럼들의 모든 메모리 셀(122)이 제 2 페이지로서 그룹화된다), 두 데이터 상태 중 하나를 저장하도록 구성된 워드 라인의 메모리 셀들(122)(예를 들어, SLC 메모리 셀들) 이 두 개의 페이지를 포함할 수 있도록 인터리빙될 수 있다. 짝수-홀수 비트 라인 아키텍처가 더 많은 수의 데이터 상태를 저장하도록 각각 구성된 메모리 셀들(122)(예를 들어, MLC, TLC, QLC 등으로서 구성된 메모리 셀들)을 갖는 워드 라인들을 구조화하는 데 이용될 때, 워드 라인당 페이지들의 수도 더 높을 수 있다(예를 들어, 4, 6, 8 등).
각 컬럼은 공통 소스에 연결된 일련의 직렬 연결된 메모리 셀(122)을 포함할 수 있다. 각 스트링의 메모리 셀들(122)은 소스 선택 트랜지스터(예를 들어, 전계 효과 트랜지스터)와 드레인 선택 트랜지스터(예를 들어, 전계 효과 트랜지스터) 사이에 직렬로 연결될 수 있다. 소스 선택 트랜지스터들은 소스 선택 라인에 공통으로 연결될 수 있고, 드레인 선택 트랜지스터는 드레인 선택 라인에 공통으로 연결될 수 있다.
메모리 디바이스(102)는 메모리 셀들(122)의 상이한 그룹화들을 사용하여 데이터 동작들을 수행할 수 있다. 예를 들어, 메모리 셀들(122)의 메모리 페이지들(124)은 메모리 블록들(126)로 그룹화될 수 있다. 동작 시, 데이터는 이를테면 페이지들(124)의 그룹들 및/또는 메모리 블록들(126)에 쓰기함으로써, 메모리 디바이스(102)의 다양한 메모리 영역에 관해 쓰기되거나 그 외 다르게 프로그래밍(예를 들어, 소거)될 수 있다. NAND-기반 메모리에서, 쓰기 동작은 보통 선택된 메모리 페이지들(124)의 메모리 셀들(122)을 특정 데이터 값들(예를 들어, 로직 0 또는 로직 1 중 어느 하나의 값을 갖는 데이터 비트들의 스트링)로 프로그래밍하는 것을 포함한다. 소거 동작은 소거 동작이 전체 메모리 블록(126) 또는 다수의 메모리 블록(126)을 동일한 데이터 상태(예를 들어, 로직 0)로 다시 프로그래밍하는 것을 제외하고는, 쓰기 동작과 유사하다.
다른 실시 예들에서, 메모리 셀들(122)은 도시된 실시 예들에 도시된 것들과 상이한 유형들의 그룹들 및/또는 계층들로 배열될 수 있다. 또한, 실증 목적을 위해 도시된 실시 예들에서 특정 수의 메모리 셀, 로우, 컬럼, 블록 및 메모리 유닛으로 도시되었지만, 다른 실시 예들에서는, 메모리 셀들, 로우들, 컬럼들, 블록들 및 메모리 유닛들의 수가 다양할 수 있고, 도시된 예들에 도시된 것보다 규모가 더 크거나 더 작을 수 있다.
예를 들어, 일부 실시 예에서, 메모리 디바이스(100)는 하나의 메모리 유닛(120)만을 포함할 수 있다. 대안적으로, 메모리 디바이스(100)는 2, 3, 4, 8, 10개 또는 그 이상(예를 들어, 16, 32, 64, 또는 그 이상)의 메모리 유닛(120)을 포함할 수 있다. 도 1에서 메모리 유닛들(120)은 각각 두 개의 메모리 블록(126)을 포함하는 것으로 도시되어 있지만, 다른 실시 예들에서, 각각의 메모리 유닛(120)은 1, 3, 4, 8개 또는 그 이상(예를 들어, 16, 32, 64, 100, 128, 256개 또는 그 이상의 메모리 블록)을 포함할 수 있다. 일부 실시 예에서, 각 메모리 블록(126)은 예를 들어, 215개의 메모리 페이지를 포함할 수 있고, 블록 내의 각 메모리 페이지는 예를 들어, 212개의 메모리 셀(122)(예를 들어, "4k" 페이지)을 포함할 수 있다.
제어기(106)는 마이크로 제어기, 특수 목적 로직 회로(예를 들어, 필드 프로그램 가능 게이트 어레이(FPGA, field programmable gate array), 특수 용도 집적 회로(ASIC, application specific integrated circuit) 등) 또는 다른 적합한 프로세서일 수 있다. 제어기(106)는 메모리에 저장된 명령들을 실행하도록 구성된 프로세서(131)를 포함할 수 있다. 도시된 예에서, 제어기(106)의 메모리는 메모리 디바이스(102)를 관리하고 메모리 디바이스(102)와 호스트 디바이스(108) 간 통신을 핸들링하는 것을 포함하여, 메모리 시스템(100)의 동작을 제어하기 위한 다양한 프로세스, 동작, 로직 흐름 및 루틴을 수행하도록 구성된 내장 메모리(133)를 포함한다. 일부 실시 예에서, 내장 메모리(133)는 예를 들어, 메모리 포인터들, 페치된 데이터 등을 저장하는 메모리 레지스터들을 포함할 수 있다. 내장 메모리(133)는 또한 마이크로-코드를 저장하기 위한 읽기 전용 메모리(ROM, read-only memory)를 포함할 수 있다. 도 1에 도시된 예시적인 메모리 디바이스(102)는 제어기(106)를 포함하는 것으로 도시되었지만, 본 기술의 다른 실시 예에서, 메모리 디바이스는 제어기를 포함하지 않고, 대신에 외부 제어(예를 들어, 외부 호스트에 의해, 또는 메모리 디바이스와 별개의 프로세서 또는 제어기에 의해 제공되는)에 의존할 수 있다.
메모리 시스템(100)은 메모리 어레이(104)와 함께 데이터(110)를 동작시키기 위한 동적 SLC 캐싱(130)(예를 들어, 읽기, 쓰기, 소거 등)을 구현할 수 있다. 동적 SLC 캐싱(130)의 경우, 메모리 시스템(100)은 SLC 모드로 구성된 XLC 유닛들(132) 상에 데이터(예를 들어, 가장 활성 데이터)를 일시적으로 저장하여 액세스 또는 읽기 시간, 쓰기 시간 또는 이들의 조합을 개선할 수 있다. XLC 유닛들(132)은 하나보다 많은 비트의 데이터를 저장할 수 있는 메모리 셀들이다. 예를 들어, XLC 유닛들(132)은 MLC들, TLC들, QLC들 또는 셀마다 하나보다 많은 비트를 보유할 수 있는 임의의 다른 메모리 셀들을 포함할 수 있다.
도 1에서, XLC 유닛들(132)이 페이지 맵을 사용하여 도시되어 있다. 페이지 맵은 각각의 메모리 블록들(126)에 대한 메모리 페이지들(124)에 대한 메모리 셀들(122)의 그룹화, 주소들, 유형들 또는 이들의 조합을 나타낼 수 있다. 페이지 맵은 논리적 페이지 유형들, 이를테면 하위, 상위 또는 추가 페이지, 그리고 또한 각각의 페이지들과 연관된 월드 라인 및 워드 라인 그룹을 식별할 수 있다. 페이지 맵은 각 셀의 비트 보유 용량에 대응하는 셀당 비트들(bits-per-cell)('bpc'로 나타냄)을 더 포함할 수 있다(예를 들어, SLC들은 1의 bpc 값에 대응하고 XLC들은 1보다 큰 bpc 값들에 대응한다).
메모리 시스템(100)은 XLC 유닛들(132)의 저장 용량 및 처리 시간을 제어하기 위한 저장 모드(134)를 결정할 수 있다. 저장 모드(134)는 대응하는 XLC 유닛들(132)의 저장 용량을 나타내는 신호 또는 파라미터로 나타내어질 수 있다. 저장 모드(134)는 XLC 유닛들(132)이 대응하는 전체 용량보다 적은 수의 비트 또는 그것들의 전체 용량에 대응하는 수의 비트 중 어느 하나를 저장하는 데 사용됨을 나타낼 수 있다.
예를 들어, 메모리 시스템(100)은 저장 모드(134)를 SLC 모드(136) 또는 XLC 모드(138)로서 지정할 수 있다. SLC 모드(136)는 대응하는 XLC 유닛들(132)이 셀마다 1 비트를 저장하는 데 사용됨을 나타내는 데 사용되는 신호 또는 파라미터를 포함할 수 있다. 다시 말해, 메모리 시스템(100)은 SLC 모드(136)를 사용하여 XLC 유닛들(132)이 마치 SLC 유닛들인 것처럼 동작하게 할 수 있다. 이에 반해, 메모리 시스템(100)은 XLC 모드(138)를 사용하여 XLC 유닛들(132)이 그것들의 최대 용량으로 동작하게 할 수 있다(예를 들어, MLC 유닛들의 경우 셀당 2 비트, TLC 유닛들의 경우 셀당 3 비트, QLC 유닛들의 경우 셀당 4 비트 등).
실증적 목적으로, XLC 모드(138)는 대응하는 메모리 셀들(122)이 그것들의 전체 용량에 대응하는 셀당 다중 비트를 저장하는 데 사용됨을 나타내는 것으로 후술된다. 그러나, 메모리 시스템(100)은 셀당 다중 비트가 사용되지만, 대응하는 메모리 셀들(122)의 전체 용량보다 적은 저장 모드들을 지정하기 위한(예를 들어, TLC 셀들을 MLC 모드로 사용하는 등) 제어 신호들 또는 파라미터들의 상이한 서브 세트들을 이용할 수 있는 것으로 이해된다.
SLC 모드(136)를 사용하여, 메모리 시스템(100)은 XLC 유닛들(132)의 저장 밀도를 감소시키면서 쓰기 성능을 향상시킬 수 있다. 대안적으로, XLC 모드(138)를 사용하면 쓰기 성능이 감소되지만 XLC 유닛들의 저장 밀도를 증가시킬 수 있다. 메모리 블록들(126)이 XLC 모드(138)로 동작될 때, 로직 블록 주소들(LBA, logical block addresses)의 전체 범위가 메모리 어레이(104) 상에 수용될 수 있다. 그에 반해, MLC, TLC 또는 QLC 블록들을 SLC 모드(136)로 이용하면 해당 블록들에 대해 각각 2, 3 또는 4의 배율로 액세스 가능한 LBA 범위가 감소될 수 있다.
XLC 모드에서 전체 LBA 범위가 이용 가능할 수 있지만, 전체 저장 용량(예를 들어, 셀당 지원되는 최대 비트 수)을 이용하는 쓰기는 다양한 이유로 셀당 1 비트를 쓰기하는 것보다 느릴 수 있다. 예를 들어, XLC 유닛들(132)을 SLC 모드(136)로 동작시키는 것은 읽기 임계치들에 대한 보다 큰 마진들 및 타겟 데이터를 쓰기하는 데 사용되는 증분 스텝 펄스 프로그래밍(ISPP, incremental step pulse programming)에 대한 보다 적은 반복을 가능하게 할 수 있다. ISPP에 따라 데이터를 쓰기하기 위해, 메모리 디바이스(102)는 증분 프로그래밍을 통해 메모리 셀의 전하 저장 구조 상에 전하를 저장할 수 있다. 메모리 셀을 목적하는 타겟 상태로 프로그래밍하기 위해, 일련의 증분 전하가 여러 번 인가되어 셀의 전하 저장 구조 상에 저장되는 전하를 증가시킬 수 있다. 각 프로그래밍 단계 후에, 전하 저장 구조 상에 저장된 전하가 그것이 목적하는 타겟 상태에 도달했는지 여부를 결정하도록 검증될 수 있다. SLC 모드로 동작함으로써, 메모리 시스템(100)은 목적하는 레벨에 도달하는 데 보다 적은 반복이 요구되도록 각 증분에 대해 더 많은 양의 전하를 사용할 수 있다.
특정 작업 부하 유형들(146)(즉, 메모리 디바이스(102)에 의해 핸들링되는 동작들에 대한 분류들)에 대해, 쓰기 성능의 개선은 저장 밀도의 감소로 인한 부정적인 영향을 많이 받지 않으면서 전체 이득으로 이어질 수 있다. 동적 SLC 캐싱(130) 동안, SLC 캐시(예를 들어, SLC 모드(136)로 동작하는 XLC 유닛들(132))는 유휴 시간 동안 발생 또는 환원될 수 있다. 그러나, 일부 작업 카테고리는 유휴 시간이 없거나 지속적인 작업 부하(150)(즉, 정상 상태)와 같이 비교적 저빈도 유휴 시간을 포함할 수 있으며, 이는 이용 가능한 모든 SLC 캐시의 소비 또는 사용으로 이어진다. 메모리 시스템(100)은 메모리 디바이스(102)에 의해 수행되는 작업과 연관된 WA의 양을 추정 또는 인식하는 것에 기초하여 XLC 유닛들(132)을 SLC 모드(136)로 개방할 수 있다(즉, 그것들을 XLC 모드(138)로 개방하는 종래의 접근법 대신).
도 2a, 도 2b 및 도 2c는 본 기술의 일 실시 예에 따른 가비지 수집(GC) 기능(202)을 위한 진행을 도시한다. GC 기능(202)은 새로운 데이터를 저장하는 데 재사용하기 위한 도 1의 메모리 블록(126)을 환원함에 있어서 소거될 구 데이터 또는 오래된 데이터를 찾는다. GC 기능(202)을 통해, 하나 이상의 페이지로부터의 유효 데이터(204)가 수집되어 새로운 빈 페이지에 쓰기될 수 있고, 새로운 착신 데이터의 재사용 및 후속 저장을 위해 구 페이지가 무효화, 소거 및 환원될 수 있다. 유효 데이터(204)는 후속 액세스를 위해 의도된 도 1의 메모리 셀들(122)에 저장된 도 1의 데이터(110)의 정정된 또는 최신 인스턴스이다. 이전 데이터가 업데이트될 때, 플래시 메모리 디바이스들은 구 데이터를 새로운 데이터로 바로 덮어 쓰지 않고, 새로운 데이터(즉, 유효 데이터(204))를 상이한 위치에 쓰기하며, 구 데이터는 오래되거나 불필요하게 된다. GC 기능(202)은 유효 데이터(204)를 새로운 위치에 유지하면서 그러한 오래된 또는 불필요한 데이터를 제거할 수 있다. 플래시 메모리 디바이스들은 도 1의 메모리 페이지(124)의 증분들로 쓰기하고 메모리 블록들(126)의 증분들로 소거되기 때문에, 가비지 수집 기능(202)은 소거 동작들을 위해 데이터의 페이지들을 이동시키고 메모리 블록들을 비울 수 있다.
도 2a, 2b 및 2c는 GC 기능(202) 동안 시간들(201, 203 및 205)에 도 1의 메모리 어레이(104)에(이를테면 '블록 X' 및 '블록 Y'로 라벨링된 메모리 블록들(126) 내 메모리 페이지들(124)에) 저장된 데이터(110)와 연관된 일련의 상태를 개념적으로 도시한다. 도 2a는 시간(201)에서 '블록 X'에 저장된 데이터(110)의 초기 상태 또는 시작 지점의 상태를 도시한다. 도 2b는 후속 시간(203)에서 '블록 X'에 저장된 데이터(110)의 변경된 상태 또는 상태 업데이트를 도시한다. 도 2c는 시간(205)에서 유효 데이터(204)를 '블록 X'로부터 '블록 Y'로 이동시키는 GC 기능(202)을 도시한다.
예를 들어, 도 2a에서, '블록 X'는 'A'로 라벨링된 유효 데이터(204)를 저장 또는 포함할 수 있다. 메모리 페이지들(124)의 다른 이용 가능한 인스턴스들은 각각 대응하는 페이지가 비어 있고 쓰기에 이용 가능함을 나타내는 쓰기 가용 상태(206)와 연관될 수 있다.
도 2b에서, 메모리 시스템(100)은 'B' 및 'C'로 라벨링된 추가 데이터를 저장할 수 있다. 메모리 시스템(100)은 데이터 'A'의 업데이트된 버전을 나타내는 데이터 'A2'를 추가로 저장할 수 있으며, 그 결과 'A'는 구 데이터 및 오래된 데이터가 된다. 시간(203)에서의 유효 데이터(204)는 'B', 'C' 및 'A2'로 라벨링된 데이터에 대응할 수 있다. 이전에 저장되고 여전히 존재하는 데이터 'A'는 만료된 데이터(208)를 나타낼 수 있다. 만료된 데이터(208)는 이전에 저장되었지만 하나 이상의 후속 동작, 변경 또는 업데이트로 인해 더 이상 유용하지 않거나 쓸모 없게 되거나 오래되었거나 유효하지 않은 데이터(110)를 포함할 수 있다.
도 2c에서, 메모리 시스템(100)은 GC 기능(202)을 구현하여 GC 소스 블록(210)으로부터 메모리 셀들(122)(즉, 도 2a, 도 2b 및 도 2c에서 '블록 X'로 나타내어지는 가비지 기능(202)의 타겟 또는 대상이 되는 메모리 블록)을 비울 수 있다. 메모리 시스템(100)은 GC 기능(202)을 위해 GC 소스 블록(210)에서 유효 데이터(204) 및 만료된 데이터(208)를 식별할 수 있다. 도 2c에 도시된 바와 같이, 메모리 시스템(100)은 만료된 데이터(208) 없이 유효 데이터(204)를 '블록 Y'로 라벨링된 새로운 위치로 복사할 수 있다. 그 후 메모리 시스템(100)은 GC 소스 블록(210)(즉, '블록 X')에 저장된 데이터(110)(즉, 복제된 유효 데이터(204) 및 만료된 데이터(208))를 소거할 수 있다. 결과적으로, GC 소스 블록(210)의 메모리 페이지들(124)은 새로운 착신 데이터를 저장하기 위한 가용성을 나타내는 쓰기 가용 상태(206)에 대응할 수 있다.
도 3은 본 기술의 실시 예들에 따라 도 1의 메모리 시스템(100)을 동작시키는 예시적인 방법(300)을 도시하는 흐름도이다. 방법(300)은 도 2의 GC 기능을 위해 도 2의 GC 소스 블록(210) 내 도 2의 유효 데이터(204)의 양에 따른 캐시 관리를 포함하는 도 1의 동적 SLC 캐싱(130)의 구현을 포함할 수 있다.
박스(302)에서, 메모리 시스템(100)은 도 1의 메모리 디바이스(102)에 대하여 도 1의 데이터(110)에 관한 동작을 이를테면 데이터(110)를 쓰기, 데이터(110)를 읽기, 데이터(110)를 소거하는 등에 의해, 수행할 수 있다. 메모리 시스템(100)은 다양한 상이한 조건 하에서 다양한 상이한 유형의 작업(예를 들어, 정상 상태를 나타내는 도 1의 지속적인 작업 부하(150))을 수행할 수 있다. 작업을 수행하는 동안, 메모리 시스템(100)은 작업의 유형, 조건 등에 따라 도 1의 XLC 유닛들(132)의 이용을 달리 하도록 도 1의 저장 모드(134)를 지정할 수 있다. 예를 들어, 메모리 시스템(100)은 다중 비트를 보유할 수 있는 XLC 유닛들(132)을 도 1의 SLC 모드(136)로 동작하고 도 1의 메모리 셀(122)마다 1 비트를 저장하도록 지정할 수 있다.
박스(304)에서, 메모리 시스템(100)은 도 2의 GC 기능(202)을 구현할 수 있다. 메모리 시스템(100)은 이를테면 병렬로 동작함으로써, 박스(302)에 나타난 데이터 동작과 함께 GC 기능(202)을 구현할 수 있다. 메모리 시스템(100)은 도 1의 하나 이상의 메모리 블록(126)이 차게 될 때마다, 이를테면 대응하는 블록들(126) 내 도 1의 모든 메모리 페이지(124)가 쓰기되어 있을 때 그리고 그것들 내 어느 페이지(124)도 도 2의 쓰기 가용 상태(206)를 갖지 않을 때 GC 기능(202)을 트리거할 수 있다.
메모리 시스템(100)은 GC 기능(202)에 대한 타겟이 될 GC 소스 블록(210)을 선택함으로써 GC 기능(202)을 구현할 수 있다. 메모리 시스템(100)은 가득 차게 된 메모리 블록들(126) 중 하나로서 GC 소스 블록(210)을 선택할 수 있다.
GC 소스 블록(210)을 선택한 후에, 메모리 시스템(100)은 그 안에 저장된 유효 데이터(204)를 식별하고, 유효 데이터(204)를 새로운 페이지에 복사하며, GC 소스 블록(210)을 소거할 수 있다. 메모리 시스템(100)은 유효 데이터(204)를 효과적으로 이동하고 도 2의 만료된 데이터(208)를 삭제하기 위해 GC 소스 블록(210)을 소거하며, 그에 따라 후속 쓰기를 위해 GC 소스 블록(210)을 비울 수 있다. 최소량의 데이터를 갖는 블록들에 대해 GC 기능(202)을 수행함으로써, 메모리 시스템(100)은 후속 쓰기를 위해 그 안의 메모리 페이지들(124)을 복구할 수 있다.
박스(306)에서, 메모리 시스템(100)은 GC 소스 블록(210)에 저장된 유효 데이터(204)의 양을 측정할 수 있다. 메모리 시스템(100)은 SLC 캐시를 관리할 때 피드백 메커니즘으로서 유효 데이터(204)를 사용할 수 있다.
GC 기능(202)이 트리거될 때마다, 메모리 시스템(100)은 소거 전에 GC 소스 블록(210) 내에 저장된 유효 데이터(204)의 양을 나타내는 유효 데이터 측정값(332)을 계산할 수 있다. 메모리 시스템(100)은 쓰기 가용 상태(206) 또는 만료된 데이터(208)를 갖는 임의의 페이지들을 무시하면서 유효 데이터(204)를 저장하는 메모리 페이지들(124)의 수를 카운팅하거나, 비어 있거나 쓰기 가용 페이지가 없이 만료된 데이터(208)를 갖는 페이지들과 비교하여 유효한 페이지들을 카운팅함으로써 계산할 수 있다. 메모리 시스템(100)은 유효 데이터(204)의 양과 GC 소스 블록(210)의 크기, 빈 또는 쓰기 가용 페이지들의 양, 만료된 데이터(208)를 갖는 페이지들의 양 또는 이들의 조합 간 비교로서(예를 들어, 이를테면 비율 또는 백분율을 사용하여) 유효 데이터 측정값(332)을 계산할 수 있다.
박스(308)에서, 메모리 시스템(100)은 유효 데이터 측정값(332)을 이용 가능한 메모리 블록(342)의 저장 모드(134)(즉, 후속 또는 다음 데이터 쓰기를 위해 설정 또는 지정된 메모리 셀들(112))를 지정하는 데 사용되는 한계를 나타내는 결정 임계치(334)와 비교할 수 있다. 결정 임계치(334)는 도 1의 SLC 모드(136) 및 XLC 모드(138)에 대응하는 유효 데이터(204)의 임계량을 나타낼 수 있다. 그에 따라, 메모리 시스템(100)은 유효 데이터 측정값(332)에 기초하여 저장 모드(134)를 SLC 모드(136) 또는 XLC 모드(138) 중 어느 하나로서 지정할 수 있다.
결정 임계치(334)은 또한 WA에 대응하고 메모리 시스템(100)에 대해 결정된 바에 따라 로우 WA 상태를 특성화할 수 있다. 예를 들어, 결정 임계치(334)는 GC 소스 블록(210)의 0%와 25% 미만 사이의 값일 수 있다. 결정 임계치(334)는 메모리 시스템(100)에 대해 미리 결정되거나 미리 결정된 방법, 기능, 동작, 회로, 방정식 등에 따라 실시간으로 결정될 수 있다.
박스(310)에서, 메모리 시스템(100)은 유효 데이터 측정값(332)이 결정 임계치(334)보다 작지 않을 때 이용 가능한 메모리 블록(342)에 대한 저장 모드(134)를 XLC 모드(138)로서 지정할 수 있다. 작업 부하들을 하이 WA로 수행하는 경우, 유효 데이터 측정값(332)이 결정 임계치(334)를 초과하는 것으로 특성화됨에 따라, 메모리 시스템(100)은 XLC 모드(138)를 지정하여 저장 용량을 증가시키고 블록 소비율을 늦출 수 있다. 그에 따라, 메모리 시스템(100)은 유효 데이터 측정값(332) 및 결정 임계치(334)를 사용하여 하이 WA 상태들에 적응하고 그에 따라 XLC 모드(138)를 이용할 수 있다.
박스(312)에서, 메모리 시스템(100)은 유효 데이터 측정값(332)이 결정 임계치(334)보다 작을 때 이용 가능한 메모리 블록(342)에 대한 저장 모드(134)를 SLC 모드(136)로서 지정할 수 있다. 작업 부하들을 로우 WA로 수행하는 경우, 유효 데이터 측정값(332)이 결정 임계치(334) 미만인 것으로 특성화됨에 따라, 메모리 시스템(100)은 SLC 모드(136)를 지정하여 쓰기 성능을 증가시키고 버스트 속도를 효과적으로 제공할 수 있다.
유효 데이터 측정값(332)이 결정 임계치(334)보다 작다고 결정되면, 메모리 시스템(100)은 메모리 디바이스(102)가 메모리 디바이스의 알려진 크기에 비해 작은 양의(즉, 결정 임계치(334)에 의해 정의된 바에 따라) 양의 유효 데이터를 나타내는 로우 로직 포화 상태(336)(예를 들어, 로우 가비지 수집 노력 상태에 대응)에서 동작하고 있다고 결정할 수 있다. 로우 로직 포화 상태(336)는 로우 WA 상태의 특성일 수 있다. 또한 그것은 메모리 디바이스가 보다 작은 양의 유효 데이터을 갖는 블록들을 생성하여 즉시 덮어 쓰여지고 있는 수퍼-핫 호스트 데이터에서 동작하고 있음을 나타낼 수도 있다. 그에 따라, 메모리 시스템(100)은 이용 가능한 메모리 블록(342)을 다음 또는 후속 데이터 쓰기를 위해 SLC 모드(136)로 동작하도록 지정할 수 있다.
예를 들어, 메모리 시스템(100)은 박스(322)에 나타내어진 바와 같이 GC 커서(338)(즉, GC 기능(202)의 대상이 되는 메모리 블록에 대한 주소, 이를테면 GC 소스 블록(210)에 대한 주소)에 대응하는 블록에 대해 또는 박스(324)에 나타내어진 바와 같이 호스트 커서(340)(즉, 착신 데이터를 저장하기 위한 타겟이 되거나 다음 쓰기 동작에 대한 타겟이 되는 메모리 블록에 대한 주소)에 대응하는 블록에 대해 SLC 모드(136)를 지정할 수 있다. 박스(322)의 경우, 메모리 시스템(100)은 GC 소스 블록(210)이 GC 기능(202) 후에 데이터 쓰기를 위해 해제되면 그것을 SLC 모드(136)로 동작하도록 지정할 수 있다. GC 소스 블록(210)은 그것이 해제되면 이용 가능한 메모리 블록(342)이 될 수 있다. 박스(324)의 경우, 메모리 시스템(100)은 GC 소스 블록(210)에 관계 없이 이용 가능한 메모리 블록(342)(즉, 다음 발생하는 메모리 쓰기를 위해 현재 지정된 메모리 블록)을 SLC 모드(136)로서 동작하도록 지정할 수 있다.
박스(314)에서, 메모리 시스템(100)은 이용 가능한 메모리 블록(342)에 대한 쓰기를 허용하는 것을 포함하여, 쓰기 동작들을 위해 메모리 블록들을 개방할 수 있다. 메모리 시스템(100)은 박스(310 또는 312)에 지정되었던 저장 모드(134)에 따라 메모리 블록들을 개방할 수 있다. 그에 따라, 메모리 시스템(100)은 박스(314)로부터 박스(302)로 가는 피드백 루프로 나타내어진 바와 같이 데이터에 관한 동작을 계속할 수 있다.
메모리 시스템(100)은 이용 가능한 메모리 블록(342)을 정상 상태 또는 지속적인 작업 부하(150) 하에서도 SLC 모드(136)로 동작하도록 지정할 수 있다. 지정은 유휴 시간과 관계 없이 GC 기능(202)이 트리거될 때마다 발생할 수 있다. 메모리 시스템(100)은 유효 데이터 측정값(332) 및 결정 임계치(334)를 사용하여 정상 상태 작업 플로우에 지능적으로 적응하고 WA가 로우일 때 SLC 캐시를 제공하여, 블록 소비율의 증가로 인한 손해를 입지 않고 쓰기 성능의 증가를 제공할 수 있다. 로우 WA 및 소량의 유효 데이터(204)에 기인하여, GC 기능(202)은 블록들을 고속으로 복구하고 블록 소비율을 충분히 상쇄할 수 있다. 그에 따라, 메모리 시스템(100)은 SLC 모드(136)로 이전에 쓰여진 데이터의 양에 관계 없이 정상 상태 하에서 SLC 모드(136)를 지정할 수 있다.
또한, 메모리 시스템(100)은 수행 모델(354)(즉, 작업 부하의 패턴 또는 유형을 특성화하는 벤치마크 트레이스들)과 연관된 데이터 만족도 측정값(352)(즉, 수행되고 있는 작업과 연관된 트레이스의 파퓰러리티 또는 트레이스가 얼마나 "핫"한지)에 관계 없이 정상 상태 하에서 SLC 모드(136)를 지정할 수 있다. 메모리 시스템(100)은 로우 로직 포화 상태(336)를 결정하는 것에 기초하여 SLC 모드(136)를 지정할 수 있기 때문에, 메모리 시스템(100)은 정상 상태 하에서 수퍼-핫 벤치마크 트레이스들에 대해서도 SLC 모드(136)를 지정할 수 있다.
정상 상태 하에서 GC 소스 블록(210)의 유효 데이터 측정값(332)에 따라 저장 모드(134)를 지정하는 것은 유휴 시간이 없을 때에도 쓰기 성능을 증가시키는 이점을 제공한다. 정상 상태 하에서 SLC 모드(136)를 지정함으로써, 메모리 디바이스(102)는 수퍼-핫 데이터 및 보다 로우인 로직 포화에서 동작하는 사용자 패턴들에 대해 유휴 시간 없이 버스트 속도로 수행할 수 있다.
또한, GC WA가 GC 소스 블록(210)의 유효 데이터 측정값(332)에 따라 로우일 때(즉, 결정 임계치(334)에 의해 획정된 바에 따라) SLC 모드(136)로 호스트 및 GC 커서 블록들을 개방하면 XLC 유닛들(132)이 겪은 프로그램-소거(program-erase) 사이클들의 수를 조절하는 이점이 제공된다. 그에 따라, 플래시 메모리의 P/E 사이클들이 GC 소스 블록(210)의 유효 데이터 측정값(332)에 따른 SLC 모드(136)의 사용을 통해 엄격하게 제어될 수 있다.
SLC 캐싱(130) 및/또는 방법(300)은 예를 들어, 메모리 디바이스(102) 또는 호스트 디바이스(108), 이를테면 제어기(106), 메모리 어레이(104), 호스트 디바이스(108)용 프로세서, 그 안의 일부 또는 이들의 조합을 위한 처리 회로에 의해 실행 또는 구현될 수 있다. SLC 캐싱(130) 및/또는 방법(300)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합의 구성을 포함하거나 이에 대응할 수 있다. SLC 캐싱(130)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합을 사용하여 저장되거나 액세스되는 하나 이상의 방법, 동작, 단계 또는 명령, 정보 또는 이들의 조합을 더 포함할 수 있다.
실증 목적으로, 흐름도는 상기한 예들로서 논의된 시퀀스 및 동작들로 설명되었다. 그러나, 방법(300)은 상이할 수 있는 것으로 이해된다. 예를 들어, 박스들(304 내지 314)로 나타내어진 동작들은 박스(302)로 나타내어진 동작들과 조합될 수 있다. 또한, 예를 들어, 박스들(304 및 306)로 나타내어진 동작들이 조합될 수 있다. 또한, 예를 들어, 박스들(304 내지 312)로 나타내어진 동작들은 박스들(302 및 314)로 나타내어진 동작들과 병렬로 실행될 수 있다.
도 4는 본 기술의 실시 예들에 따른 메모리 디바이스를 포함하는 시스템의 개략도이다. 도 1 내지 도 3을 참조하여 상술된 전술한 메모리 디바이스들 중 임의의 메모리 디바이스는 다수의 더 크고/거나 더 복잡한 시스템 중 임의의 시스템으로 편입될 수 있으며, 이의 대표적인 예가 도 4에 개략적으로 도시된 시스템(480)이다. 시스템(480)은 메모리 디바이스(400), 전원(482), 드라이버(484), 프로세서(486) 및/또는 다른 서브 시스템들 또는 구성요소들(488)을 포함할 수 있다. 메모리 디바이스(400)는 도 1 내지 도 3을 참조하여 상술된 메모리 디바이스의 특징들과 대체로 유사한 특징들을 포함할 수 있고, 그에 따라 상술된 동작들을 수행하기 위한 다양한 특징을 포함할 수 있다. 그 결과 시스템(480)은 메모리 저장, 데이터 처리 및/또는 다른 적합한 기능들과 같은 광범위한 기능 중 임의의 기능을 수행할 수 있다. 그에 따라, 대표적인 시스템(480)은 핸드헬드 디바이스들(예를 들어, 휴대 전화, 태블릿, 디지털 리더기 및 디지털 오디오 플레이어), 컴퓨터, 차량, 가전 제품 및 다른 제품들을 제한 없이 포함할 수 있다. 시스템(480)의 구성요소들은 단일 유닛에 하우징되거나 다수의 상호 연결된 유닛에 걸쳐 분산될 수 있다(예를 들어, 통신 네트워크를 통해). 또한 시스템(480)의 구성요소들은 원격 디바이스들 및 광범위한 컴퓨터 읽기 가능 매체 중 임의의 매체를 포함할 수 있다.
앞에서의 내용으로부터, 본 기술의 구체적인 실시 예들이 실증 목적으로 여기에 설명되었지만, 본 개시 내용에서 벗어나지 않고 다양한 변형이 이루어질 수 있다는 것이 이해될 것이다. 또한, 특정 실시 예들과 관련하여 설명된 새로운 기술의 특정 양태들은 또한 다른 실시 예들에서 조합 또는 제거될 수도 있다. 또한, 그러한 실시 예들과 관련하여 새로운 기술의 특정 실시 예들과 연관된 이점들이 설명되었지만, 다른 실시 예들도 그러한 이점들을 나타낼 수 있고 모든 실시 예가 본 기술의 범위 내에 있기 위해 반드시 그러한 이점들을 나타내야 하는 것은 아니다. 따라서, 본 개시 내용 및 관련 기술은 여기에 명시적으로 도시되거나 설명되지 않은 다른 실시 예들을 망라할 수 있다.

Claims (24)

  1. 메모리 시스템으로서,
    복수의 메모리 셀을 포함하는 메모리 어레이; 및
    상기 메모리 어레이에 연결되는 제어기로서:
    유효 데이터를 저장하는 가비지 수집(GC, garbage collection) 소스 블록을 선택하도록,
    상기 GC 소스 블록 내 상기 유효 데이터의 양을 나타내기 위해 상기 GC 소스 블록에 대한 유효 데이터 측정값을 계산하도록, 그리고
    상기 유효 데이터 측정값에 기초하여 이용 가능한 메모리 블록에 대한 저장 모드를 지정하도록 구성된, 상기 제어기를 포함하며,
    상기 이용 가능한 메모리 블록의 메모리 셀들은 N비트들까지 저장하도록 구성되며 소거된 상태에 있으며,
    상기 저장 모드는 후속 또는 다음 데이터 쓰기를 위해 M비트들을 저장하는 캐시 메모리로서 상기 메모리 셀들을 구성하기 위한 것이며, M은 N보다 작은, 메모리 시스템.
  2. 청구항 1에 있어서, 상기 제어기는 상기 유효 데이터 측정값을 결정 임계치과 비교하는 것에 기초하여 상기 저장 모드로 단일 레벨 셀(SLC) 모드를 지정하도록 더 구성되는, 메모리 시스템.
  3. 청구항 2에 있어서, 상기 제어기는 상기 GC 소스 블록에 저장된 상기 유효 데이터의 임계량을 나타내는 상기 결정 임계치에 기초하여 상기 SLC 모드를 지정하도록 구성되되, 상기 임계량은 설정 가능하고 0보다 크고 상기 GC 소스 블록의 총 용량의 25% 미만인, 메모리 시스템.
  4. 청구항 3에 있어서, 상기 임계량은 상기 GC 소스 블록의 총 용량의 10%인, 메모리 시스템.
  5. 청구항 1에 있어서, 상기 후속 또는 다음 데이터 쓰기를 위한 호스트 커서에 대응하여 상기 이용 가능한 메모리 블록에 대한 상기 저장 모드를 지정하도록 더 구성되는, 메모리 시스템.
  6. 청구항 1에 있어서, 상기 후속 또는 다음 데이터 쓰기를 위한 GC 커서에 대응하여 상기 이용 가능한 메모리 블록에 대한 상기 저장 모드를 지정하도록 더 구성되는, 메모리 시스템.
  7. 청구항 1에 있어서, 상기 제어기는:
    상기 유효 데이터의 양이 결정 임계치보다 작은 경우 상기 메모리 어레이에 대해 로우 로직 포화 상태를 결정하도록; 그리고
    상기 로우 로직 포화 상태에 기초하여 상기 저장 모드로 SLC 모드를 지정하도록 구성되는, 메모리 시스템.
  8. 청구항 1에 있어서, 상기 제어기는 정상 상태 하에서 상기 저장 모드를 SLC 모드로서 지정하도록 구성되는, 메모리 시스템.
  9. 청구항 8에 있어서,
    상기 메모리 어레이는 정적 캐시로 지정된 정적 SLC 블록들을 포함하며, 상기 정적 SLC 블록들은 셀마다 1 비트를 저장하며,
    상기 제어기는 상기 정적 캐시에 더하여, 상기 SLC 모드로 동작하고 상기 캐시 메모리로서 셀마다 1 비트를 저장하기 위해, 다중 비트의 상기 데이터를 보유할 수 있는 추가 레벨 셀(XLC, extra-level cell) 유닛들을 이용하기 위한 동적 SLC 캐싱 기능을 위해 상기 저장 모드를 지정하도록 더 구성되는, 메모리 시스템.
  10. 청구항 1에 있어서, 상기 제어기는 상기 유효 데이터 측정값이 결정 임계치 이상일 때 상기 저장 모드로 XLC 모드를 지정하도록 구성되는, 메모리 시스템.
  11. 청구항 1에 있어서, 상기 제어기는 SLC 모드로 동작하는 상기 메모리 셀들의 그룹화를 포함하여 상기 GC 소스 블록을 선택하도록 구성되는, 메모리 시스템.
  12. 청구항 1에 있어서, 상기 메모리 셀들은 비휘발성인, 메모리 시스템.
  13. 청구항 1에 있어서, 상기 제어기는 SLC 모드로 이전에 쓰기된 상기 데이터의 양에 관계 없이 상기 후속 또는 다음 데이터 쓰기를 위해 상기 SLC 모드로서 상기 저장 모드를 지정하도록 구성되는, 메모리 시스템.
  14. 청구항 1에 있어서, 상기 제어기는 이전에 저장된 상기 데이터를 특성화하기 위한 수행 모델과 연관된 데이터 만족도 측정값에 관계 없이 상기 후속 또는 다음 데이터 쓰기를 위해 SLC 모드로서 상기 저장 모드를 지정하도록 구성되는, 메모리 시스템.
  15. 제어기 및 메모리 셀들을 포함하는 메모리 어레이를 포함하는 메모리 시스템을 동작시키는 방법으로서,
    유효 데이터를 저장하는 GC 소스 블록을 선택하는 단계;
    상기 GC 소스 블록 내 상기 유효 데이터의 양을 나타내기 위해 상기 GC 소스 블록에 대한 유효 데이터 측정값을 계산하는 단계; 및
    상기 유효 데이터 측정값에 기초하여 이용 가능한 메모리 블록에 대한 저장 모드를 지정하는 단계를 포함하며,
    상기 이용 가능한 메모리 블록의 메모리 셀들은 N비트들까지 저장하도록 구성되며 소거된 상태에 있으며,
    상기 저장 모드는 후속 또는 다음 데이터 쓰기를 위해 M비트들을 저장하는 캐시 메모리로서 상기 메모리 셀들을 구성하기 위한 것이며, M은 N보다 작은, 방법.
  16. 청구항 15에 있어서, 상기 저장 모드를 지정하는 단계는 상기 후속 또는 다음 데이터 쓰기를 위한 호스트 커서에 대응하여 상기 이용 가능한 메모리 블록에 대한 상기 저장 모드를 지정하는 단계를 포함하는, 방법.
  17. 청구항 15에 있어서, 상기 저장 모드를 지정하는 단계는 상기 후속 또는 다음 데이터 쓰기를 위한 GC 커서에 대응하여 상기 이용 가능한 메모리 블록에 대한 상기 저장 모드를 지정하는 단계를 포함하는, 방법.
  18. 청구항 15에 있어서, 상기 저장 모드를 지정하는 단계는 상기 유효 데이터 측정값이 결정 임계치 이상일 때 상기 저장 모드로 XLC 모드를 지정하는 단계를 포함하는, 방법.
  19. 청구항 15에 있어서, 상기 저장 모드를 지정하는 단계는 상기 유효 데이터 측정값이 결정 임계치 미만일 때 상기 저장 모드로 SLC 모드를 지정하는 단계를 포함하는, 방법.
  20. 청구항 19에 있어서, 상기 SLC 모드를 지정하는 단계는 상기 SLC 모드로 이전에 쓰기된 상기 데이터의 양에 관계 없이, 이전에 저장된 상기 데이터를 특성화하기 위한 수행 모델과 연관된 데이터 만족도 측정값에 관계 없이, 또는 이들의 조합으로 상기 SLC 모드를 지정하는 단계를 포함하는, 방법.
  21. 청구항 19에 있어서, 상기 SLC 모드를 지정하는 단계는 상기 GC 소스 블록에 저장된 상기 유효 데이터의 임계량을 나타내는 상기 결정 임계치에 기초하여 상기 SLC 모드를 지정하는 단계를 포함하되, 상기 임계량은 설정 가능하고 0보다 크고 상기 GC 소스 블록의 총 용량의 25% 미만인, 방법.
  22. 청구항 21에 있어서, 상기 SLC 모드를 지정하는 단계는 상기 임계량을 상기 GC 소스 블록의 총 용량의 10%로 설정하는, 방법.
  23. 제어기 및 메모리 셀들을 포함하는 메모리 어레이를 포함하는 메모리 시스템을 동작시키는 방법으로서,
    정상 상태 하에서 상기 메모리 셀들에 데이터를 쓰기하는 단계;
    상기 메모리 셀들의 그룹화를 나타내기 위한 GC 소스 블록을 선택하는 단계로서,
    상기 GC 소스 블록은 후속 또는 다음 데이터 쓰기를 위해 상기 GC 소스 블록을 이용 가능하게 함에 있어서 유효 데이터를 다른 메모리 셀들의 세트에 복사하고 GC 소스 블록에 저장된 정보를 소거하도록 구성된 GC 기능의 타겟인, 상기 GC 소스 블록을 선택하는 단계;
    상기 GC 소스 블록 내에 저장된 상기 유효 데이터의 양을 나타내기 위해 상기 GC 소스 블록에 대한 유효 데이터 측정값을 계산하는 단계; 및
    상기 유효 데이터 측정값이 결정 임계치 미만일 때 이용 가능한 메모리 블록에 대한 SLC 모드를 지정하는 단계를 포함하며,
    상기 이용 가능한 메모리 블록의 메모리 셀들은 XLC 유닛들이며 소거된 상태에 있으며,
    상기 SLC 모드는 상기 후속 또는 다음 데이터 쓰기를 위해 캐시 메모리로서 셀마다 1 비트를 저장하기 위해 다중 비트를 보유할 수 있는 상기 XLC 유닛들을 동작시키기 위한 것인, 방법.
  24. 청구항 23에 있어서, 상기 SLC 모드를 지정하는 단계는 호스트 커서 또는 GC 커서에 대응하여 상기 이용 가능한 메모리 블록에 대한 상기 SLC 모드를 지정하는 단계를 포함하는, 방법.
KR1020207009337A 2017-08-31 2018-08-16 동적 캐시 관리 기능이 있는 메모리 디바이스 KR102419541B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/693,178 2017-08-31
US15/693,178 US10509722B2 (en) 2017-08-31 2017-08-31 Memory device with dynamic cache management
PCT/US2018/046816 WO2019046020A1 (en) 2017-08-31 2018-08-16 MEMORY DEVICE HAVING DYNAMIC CACHE MANAGEMENT

Publications (2)

Publication Number Publication Date
KR20200037882A KR20200037882A (ko) 2020-04-09
KR102419541B1 true KR102419541B1 (ko) 2022-07-11

Family

ID=65435247

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207009337A KR102419541B1 (ko) 2017-08-31 2018-08-16 동적 캐시 관리 기능이 있는 메모리 디바이스

Country Status (6)

Country Link
US (5) US10509722B2 (ko)
EP (1) EP3676714A4 (ko)
KR (1) KR102419541B1 (ko)
CN (1) CN111095226B (ko)
TW (1) TWI711926B (ko)
WO (1) WO2019046020A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509722B2 (en) 2017-08-31 2019-12-17 Micron Technology, Inc. Memory device with dynamic cache management
KR102593541B1 (ko) * 2018-11-29 2023-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200116354A (ko) * 2019-04-01 2020-10-12 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10877882B1 (en) * 2019-06-19 2020-12-29 Micron Technology, Inc. Garbage collection adapted to user device access
US11074177B2 (en) * 2019-06-19 2021-07-27 Micron Technology, Inc. Garbage collection adapted to host write activity
KR102654797B1 (ko) 2019-07-12 2024-04-05 양쯔 메모리 테크놀로지스 씨오., 엘티디. 불량 컬럼 리페어를 제공하는 메모리 디바이스 및 이를 동작시키는 방법
DE102019215292A1 (de) * 2019-10-04 2021-04-08 Robert Bosch Gmbh Datenstruktur, Speichermittel und Vorrichtung
TWI729674B (zh) * 2020-01-13 2021-06-01 慧榮科技股份有限公司 資料儲存裝置及其垃圾蒐集方法
TWI791981B (zh) * 2020-04-30 2023-02-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
CN112783656B (zh) * 2021-01-29 2024-04-30 杭州网易智企科技有限公司 内存管理方法、介质、装置和计算设备
TWI814590B (zh) * 2022-09-26 2023-09-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120240012A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
US20170109050A1 (en) * 2010-09-24 2017-04-20 Kabushiki Kaisha Toshiba Memory system having a plurality of writing modes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US9245653B2 (en) * 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
US8595415B2 (en) * 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
US9251055B2 (en) * 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US10509722B2 (en) 2017-08-31 2019-12-17 Micron Technology, Inc. Memory device with dynamic cache management
JP7053399B2 (ja) * 2018-07-31 2022-04-12 キオクシア株式会社 情報処理システム
US11397674B1 (en) * 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US20230402113A1 (en) * 2022-06-13 2023-12-14 Sandisk Technologies Llc Data latch programming algorithm for multi-bit-per-cell memory devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120240012A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
US20170109050A1 (en) * 2010-09-24 2017-04-20 Kabushiki Kaisha Toshiba Memory system having a plurality of writing modes

Also Published As

Publication number Publication date
US11853205B2 (en) 2023-12-26
EP3676714A1 (en) 2020-07-08
TW201921252A (zh) 2019-06-01
US11593261B2 (en) 2023-02-28
US20210342261A1 (en) 2021-11-04
US20190065366A1 (en) 2019-02-28
US20240126690A1 (en) 2024-04-18
US20200097402A1 (en) 2020-03-26
US20230195615A1 (en) 2023-06-22
CN111095226A (zh) 2020-05-01
US10509722B2 (en) 2019-12-17
KR20200037882A (ko) 2020-04-09
EP3676714A4 (en) 2021-06-09
CN111095226B (zh) 2023-11-03
US11093385B2 (en) 2021-08-17
WO2019046020A1 (en) 2019-03-07
TWI711926B (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
KR102419541B1 (ko) 동적 캐시 관리 기능이 있는 메모리 디바이스
US11544188B2 (en) Memory device with dynamic storage mode control
US10310924B2 (en) Storage device and read reclaim method thereof
US10133506B2 (en) Systems and methods for managing non-volatile memory based on temperature
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US20070255889A1 (en) Non-volatile memory device and method of operating the device
TWI652577B (zh) 資料儲存裝置及非揮發式記憶體操作方法
US8549214B2 (en) Protection against data corruption for multi-level memory cell (MLC) flash memory
CN112115070A (zh) 适应存储器装置预期寿命的垃圾数据收集
JP2014038687A (ja) 多様なメモリセル状態定義を有する不揮発性メモリ装置とそのプログラミング方法及び動作方法並びにこれを備えたメモリシステム
US9465539B2 (en) Operation management in a memory device
US11972294B2 (en) Allocation schema for a scalable memory area
KR20140134497A (ko) 메모리 시스템 및 그것의 캐시 관리 방법
KR20210012123A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN114415949B (zh) 扫描回收block方法、系统、存储介质及设备
US11288007B2 (en) Virtual physical erase of a memory of a data storage device

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant