KR20140016377A - 메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절 - Google Patents

메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절 Download PDF

Info

Publication number
KR20140016377A
KR20140016377A KR1020137033029A KR20137033029A KR20140016377A KR 20140016377 A KR20140016377 A KR 20140016377A KR 1020137033029 A KR1020137033029 A KR 1020137033029A KR 20137033029 A KR20137033029 A KR 20137033029A KR 20140016377 A KR20140016377 A KR 20140016377A
Authority
KR
South Korea
Prior art keywords
memory
cache
dynamic
available
array
Prior art date
Application number
KR1020137033029A
Other languages
English (en)
Other versions
KR101547418B1 (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 KR20140016377A publication Critical patent/KR20140016377A/ko
Application granted granted Critical
Publication of KR101547418B1 publication Critical patent/KR101547418B1/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/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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/1016Performance 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/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile 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/22Employing cache memory using specific memory technology
    • G06F2212/224Disk storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache 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/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • 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/7206Reconfiguration of flash memory system
    • 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
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

동적으로 메모리 캐시 사이즈를 조절하고, 동적으로 메모리 캐시 사이즈의 조절을 인에이블하는 방법, 메모리 디바이스, 및 메모리 시스템이 개시된다. 동적으로 메모리 캐시 사이즈를 조절하는 하나의 이러한 방법은 메모리 어레이에서 이용가능한 메모리 공간을 결정하고 상기 이용가능한 메모리 공간에 응답하여 상기 메모리 어레이에서 메모리 캐시의 사이즈를 동적으로 조절한다.

Description

메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절{DYNAMIC MEMORY CACHE SIZE ADJUSTMENT IN A MEMORY DEVICE}
본 실시예는 일반적으로 메모리에 관한 것이고, 특정 실시예는 MLC 메모리에 있는 동적 SLC 캐시에 관한 것이다.
플래시 메모리 디바이스는 광범위한 전자 애플리케이션을 위한 비휘발성 메모리의 일반적인 소스로 개발되었다. 플래시 메모리 디바이스는 일반적으로 높은 메모리 밀도, 높은 신뢰성, 및 낮은 전력 소비를 가능하게 하는 하나의 트랜지스터 메모리 셀을 사용한다. 플래시 메모리의 일반적인 사용은 퍼스널 컴퓨터, 플래시 드라이브, 디지털 카메라, 및 셀룰러 전화를 포함한다. 프로그램 코드 및 시스템 데이터, 예를 들어 기본 입력/출력 시스템(basic input/output system: BIOS)은 일반적으로 퍼스널 컴퓨터 시스템에 사용하는 플래시 메모리 디바이스에 저장된다.
대표적인 플래시 메모리 디바이스는, 메모리 셀의 어레이가 일반적으로 블록마다에 기초하여 소거될 수 있는 (및 페이지마다에 기초하여 재프로그래밍될 수 있는) 메모리 블록으로 구성되어 있는 메모리 유형이다. 전하 저장 구조(예를 들어, 플로팅 게이트 또는 전하 트랩) 또는 다른 물리적 현상(예를 들어, 위상 변화 또는 분극)의 소거 또는 프로그래밍을 통해 각 메모리 셀의 임계 전압을 변화시키면 각 셀에 프로그래밍되는 데이터 값이 결정된다. 이런 유형의 셀에서 데이터는 전하 저장 구조 내 전하의 존재 또는 부재에 의해 결정된다.
프로그래밍 동작은 일반적으로 특정 메모리 셀의 임계 전압을 증가시키기 위하여 프로그래밍되는 메모리 셀의 제어 게이트에 인가되는 점증적으로 증가하는 프로그래밍 펄스의 시리즈를 포함한다. 각 메모리 셀은 셀의 임계 전압(Vt)이 이 셀에 프로그래밍되는 데이터 값을 나타내는 단일 레벨 셀(single level cell: SLC) 메모리 또는 다중 레벨 셀(multiple level cell: MLC) 메모리로 프로그래밍될 수 있다. 예를 들어, SLC 메모리에서, 2.5V의 Vt는 프로그래밍된 셀을 나타내는 것인 반면 -0.5V의 Vt는 소거된 셀(erased cell)을 나타내는 것일 수 있다. MLC 메모리는 상이한 상태를 각각 나타내는 다수의 Vt 범위를 사용한다. 다중레벨 셀은 비트 패턴을 특정 Vt 범위에 할당하는 것에 의해 전통적인 플래시 셀의 아날로그 특성을 이용할 수 있다. 이 기술은 셀에 할당된 Vt 범위의 양에 따라 셀마다 2개 이상의 비트를 나타내는 데이터 값을 저장할 수 있게 한다.
메모리 셀의 블록을 프로그래밍하는 동안, 메모리 셀의 고정된 캐시는 일반적으로 메모리 셀의 블록으로 프로그래밍되는 데이터를 임시로 저장하는데 사용된다. 예를 들어, MLC 메모리 디바이스에서, 고정된 사이즈 SLC 캐시는 메모리 셀의 MLC 블록으로 프로그래밍하기 위한 데이터를 저장하는데 사용될 수 있다. 이것은 메모리 신뢰성을 개선할 수 있다. 메모리 성능은 또한 캐시가 거의 가득 차게 되기 이전에는 개선되지만, 가득 찬 시점에서는 캐시의 일부가 MLC 블록으로 이동하여야 캐시에 더 많은 여유 공간이 생성되므로, 캐시의 성능 장점이 감소될 수 있다. 이 성능 개선은 캐시의 사이즈의 함수이지만 메모리의 고정된 부분이 SLC 캐시로 사용되고 MLC와 동일한 효율로 유저 데이터를 저장하는데는 사용될 수 없으므로 유저 용량을 감소시키는 단점을 지닌다.
전술한 이유, 및 본 명세서를 읽어서 이해할 때 이 기술 분야에 통상의 지식을 가진 자에게는 명백한 다른 이유 때문에, 프로그래밍 동안 데이터를 일시적으로 저장하는 보다 효율적인 방식이 이 기술 분야에 요구된다.
도 1은 메모리 캐시를 병합하는 메모리 디바이스에 있는 메모리 어레이의 일 실시예의 블록도;
도 2는 도 1의 블록도에 따라 메모리 어레이의 일부분의 일 실시예의 개략도;
3은 동적 캐시 사이즈 조절을 위한 방법의 일 실시예의 흐름도;
4는 캐시 사이즈를 조절할 때를 결정하기 위한 하나의 함수의 일 실시예를 도시한 도면;
5는 캐시 사이즈를 조절할 때를 결정하기 위한 함수의 다른 실시예를 도시한 도면;
6은 메모리 시스템의 일 실시예의 블록도.
이하 상세한 설명에서는, 본 명세서의 일부를 형성하고 특정 실시예를 예로서 도시하는 첨부 도면을 참조한다. 도면에서 동일한 참조 부호는 여러 도면에 걸쳐 실질적으로 유사한 구성요소를 기술한다. 다른 실시예도 이용될 수 있고, 구조적, 논리적, 및 전기적 변화들이 본 발명의 범위를 벗어남이 없이 이루어질 수 있다. 그러므로 이하 상세한 설명은 발명을 제한하는 의미로 해석되어서는 안 된다.
도 1은 동적 메모리 캐시(102)를 병합하는 메모리 디바이스의 메모리 어레이(104)의 일 실시예의 블록도를 도시한다. 메모리(104)는 파티션으로 분할(partitioned)되고, 제1 파티션(이후 본 명세서에서 이 파티션 내 셀은 MLC 모드로 프로그래밍되어 메인 MLC 메모리라고 지칭됨) 및 제2 파티션(102)(이후 본 명세서에서 이 파티션 내 셀은 SLC 모드로 프로그래밍되어 동적 SLC 메모리 캐시라고 지칭됨)를 포함한다. 일 실시예에서 메모리 어레이(100) 내 메인 메모리에 할당된 블록은 MLC로 사용되고 동적 메모리 캐시(102)에 할당된 블록은 SLC로 사용된다. 동적 메모리 캐시에서, 블록의 할당은 동적으로 변화되고 고정되어 있지 않고, 블록은 MLC 또는 SLC에 유지되거나 또는 MLC 또는 SLC로 사용되는 것 사이에서 스위칭될 수 있다. 일반성을 상실함이 없이, 캐시(102)에 사용되는 블록은 SLC 캐시 블록이라고 지칭되고 유저 데이터를 저장하는데 사용되는 블록은 MLC 메인 메모리 블록이라고 지칭된다.
전형적인 종래 기술의 메모리 캐시는 사이즈가 고정되어 있어서 메모리 어레이의 일부분이 일시적 데이터 캐시에 항상 전용되도록 항상 인에이블되어 있어, 유저 데이터를 저장하는데 이용가능한 메모리의 양을 감소시킨다. 도 1의 동적 데이터 캐시(102)는 이용가능한 자유 공간에 따라 사이즈가 동적으로 조절되고, 항상 인에이블되는 것은 아닐 수 있다. 따라서, 동적 메모리 캐시(102)는 캐시 사이즈를 동적으로 조절하는 캐시 함수를 달성하기 위해 필요한 것보다 더 많은 메모리를 차지하지 않도록 동적으로 조절될 수 있다. 본 발명의 또 다른 특징은 MLC 및 SLC에의 메모리 파티션이 어레이 또는 블록 레벨에 있을 수 있다는 것이다. 본 발명의 더 다른 특징은 파티션에 있는 어레이 또는 블록이 연속적이어야 하는 것은 아니라는 것이다. 일부 시스템에서 데이터는 항상 캐시에 제일 먼저 기록된다. 다른 시스템에서 데이터의 일부 유형만이 캐시, 예를 들어 페이지 사이즈보다 더 작은 데이터에 기록된다. 고정된 또는 동적인 메모리 캐시를 구비하는 시스템에서 일부 이벤트는 유효 데이터를 캐시로부터 메인 메모리 블록으로 이동시키는 것을 트리거할 수 있다(일부 시스템에서 캐시 내 유효 및 무효 데이터가 이동될 수 있다). 이러한 이벤트는 캐시에 있는 자유로운 블록의 수가 임계값 미만인 것을 포함한다. 캐시 내 블록은 메인 메모리로 이동될 때 블록이 소거되고 재사용된다. 유사하게, 구(old) 및 신(new) 데이터를 포함하는 메인 메모리 내 블록은 신 데이터를 메인 메모리 내 다른 블록으로 이동시킨 다음 구 블록을 소거하는 것에 의해 재사용될 수 있다.
동적 SLC 메모리 캐시(102)는 메모리 어레이(104)의 메모리에서 가변적인 수의 메모리 블록을 사용하여 메인 메모리 어레이(100)에 프로그래밍될 데이터를 일시적으로 저장한다. 예를 들어, 동적 SLC 메모리 캐시(102)는 데이터의 상부 페이지(upper page)가 메인 MLC 메모리(100)에 성공적으로 프로그래밍될 때까지 데이터의 모든 페이지(하부 및 상부 페이지)를 저장할 수 있다. 이것은 전력 단전(power failure)이 상부 페이지 프로그래밍 동안 발생하는 경우 메인 MLC 메모리 어레이(100)에서 이전에 프로그래밍된 하부 페이지의 손상을 감소시킬 수 있다. 일 실시예에서, 데이터는 SLC 내 동적 메모리 캐시(102) 블록에 저장되고, MLC 블록에서 페이지를 프로그래밍하는데 요구되는 모든 페이지가 (동적 메모리 캐시(102)에서) 이용가능할 때 데이터는 메인 메모리 어레이(100) 내 블록으로 이동되어서, 캐시(102)는 MLC 메인 메모리 어레이(100)의 하나의 페이지가 프로그래밍될 때까지 요구되는 데이터의 모든 페이지를 저장할 수 있다. 예를 들어, SLC 동적 메모리 캐시(102)는 MLC 메인 메모리 어레이(100)의 상부 페이지가 성공적으로 프로그래밍될 때까지 데이터의 하부 페이지를 저장할 수 있다. 이것은 전력 단전이 상부 페이지 프로그래밍 동안 발생하는 경우 MLC 메인 메모리 어레이(100)에서 이전에 프로그래밍된 하부 페이지의 손상을 감소시킬 수 있다.
도 2는 비휘발성 메모리 셀의 시리즈 스트링을 포함하는, 도 1에 도시된 바와 같은, NAND 아키텍처 메모리 어레이(201)의 일부의 일 실시예의 개략도를 도시한다. 메모리 어레이의 본 실시예는 도시된 NAND 아키텍처로 제한되지 않는다. 대안적인 실시예는 NOR 또는 다른 아키텍처를 또한 사용할 수 있다.
메모리 어레이(201)는 시리즈 스트링(204, 205)과 같은 열(column)로 배열된 비휘발성 메모리 셀(예를 들어, 플로팅 게이트)의 어레이를 포함한다. 각 셀은 각 시리즈 스트링(204, 205)의 소스에 드레인이 연결된다. 다수의 시리즈 스트링(204, 205)에 걸쳐 있는 액세스 라인(예를 들어 워드 라인)(WL0 - WL31)은 행(row)으로 메모리 셀의 제어 게이트를 바이어스하기 위하여 행으로 각 메모리 셀의 제어 게이트에 연결된다. 짝수/홀수 비트 라인(BL_E, BL_O)과 같은 데이터 라인은 시리즈 스트링에 연결되고 종국적으로 선택된 비트 라인 상의 전류 또는 전압을 센싱하는 것에 의해 각 셀의 상태를 검출하는 센스 회로에 연결된다.
메모리 셀의 각 시리즈 스트링(204, 205)은 소스 선택 게이트(216, 217)(예를 들어, 트랜지스터)에 의해 소스 라인(206)에 연결되고 드레인 선택 게이트(212, 213)(예를 들어, 트랜지스터)에 의하여 개별 비트 라인(BL_E, BL_O)에 연결된다. 소스 선택 게이트(216, 217)는 제어 게이트에 연결된 소스 선택 게이트 제어 라인(SG(S))(218)에 의하여 제어된다. 드레인 선택 게이트(212, 213)는 드레인 선택 게이트 제어 라인(SG(D))(214)에 의하여 제어된다.
도 3은 도 1에 도시된 동적 메모리 캐시의 사이즈를 동적으로 조절하는 방법의 일 실시예의 흐름도를 도시한다. 일부 파일 시스템은 인식되지 않을 수 있으므로, 본 방법은 메모리 디바이스에서 구현된(예를 들어, 설치된, 실행된) 파일 시스템이 지원되는 것인지의 여부를 결정한다(300). 이 기술 분야에 잘 알려진 바와 같이, 파일 시스템(예를 들어, 파일 할당 테이블(FAT), 파일 시스템(New Technology File System: NTFS)은 컴퓨터 파일 및 그 데이터를 저장하고 구성하는 방법이다. 이 시스템은 이들 파일을 컴퓨터의 운영 시스템에 의하여 저장하고 구성하고 조작하고 검색하기 위한 데이터베이스로 구성한다.
동적인 파일 시스템이 캐시 사이즈 조절(300)을 지원하지 않는다면, 동적 메모리 캐시 조절이 디스에이블(disabled)된다(310). 동적 메모리 캐시 사이즈 조절은 메모리 디바이스가 메모리 캐시 사이즈의 동적 변화를 구현하기 위하여 논리적 블록 어드레스의 범위의 삭제를 허용하는 임의의 커맨드 프로토콜(command protocol)을 지원하는 경우에도 여전히 구현될 수 있다. 이 기술 분야에 알려진 하나의 이러한 프로토콜은 일반적으로 일반적으로 TRIM 프로토콜이라고 지칭된다. 따라서 TRIM 커맨드가 수신되었는지의 여부가 결정된다(302). 이 단계(302)는 TRIM 커맨드가 수신될 때까지 반복된다. TRIM 커맨드가 수신되면(302), 동적 메모리 캐시가 인에이블(enabled)된다(304).
동적 메모리 캐시의 사이즈가 메인 메모리 어레이에서 이용가능한 메모리 공간에 응답하여 조절되므로, 메인 메모리 어레이에서 이용가능한 메모리 공간이 결정된다(306). 이용가능한 메모리 공간의 양은 끊임 없이(constantly) 변화할 수 있다 . 일 실시예에서, 메인 메모리 어레이에서 이용가능한 메모리 공간의 양은 매 기록 또는 소거 동작 후에 결정될 수 있다. 다른 실시예에서, 이용가능한 메모리 공간의 양은 주기적으로 또는 랜덤한 시간에 결정될 수 있다. 이용가능한 메모리 공간은 즉시 사용을 위한 것으로 타깃 지정되지 않은 소거된 메모리 및 아직 소거되지 않았으나 메모리에 저장된 데이터가 오래된 것이어서 더 이상 유효하지 않은 메모리를 모두 포함할 수 있다. 더 다른 실시예에서, 이용가능한 메모리의 양은 수신된 TRIM 커맨드(TRIM가 지원되는 경우)에 응답하여, 또는 알려진 파일 시스템의 경우에, 클러스터가 할당해제되거나 또는 기록될 때 조절된다.
더 다른 실시예에서, 이용가능한 메모리의 양은 TRIM 커맨드(TRIM가 지원되는 경우)에 응답하여 또는, 알려진 파일 시스템의 경우에, 클러스터가 할당해제되거나 또는 기록될 때 조절된다. 고정 또는 동적 메모리 캐시를 구비하는 시스템에서, 일부 이벤트는 유효 데이터(또는, 선택적으로, 유효 및 무효 데이터)를 동적 SLC 캐시 메모리로부터 메인 MLC 메모리 블록으로 이동시키는 것을 트리거할 수 있다. 이러한 이벤트는 캐시 내 자유로운 블록의 수가 임계값 미만에 있는 것을 포함한다. 동적 SLC 캐시에 있는 블록이 메인 MLC 메모리로 이동될 때 블록은 소거되고 이 블록은 재사용되어 자유 블록의 풀에 추가된다. 유사하게, 구 및 신 데이터를 포함하는 메인 MLC 메모리에 있는 블록이 유효 데이터만을 메인 MLC 메모리 내 다른 블록으로 이동시킨 다음 구 블록을 소거하는 것에 의해 재사용될 수 있다.
동적 메모리 캐시의 사이즈는 이용가능한 메모리 공간 308에 응답하여 조절된다. 동적 메모리 캐시의 사이즈는 이용가능한 메모리 공간의 퍼센트(percentage), 모든 이용가능한 메모리 공간, 또는 이용가능한 메모리 공간에서 특정 개수의 블록일 수 있다. 일 실시예에서, 사용되는 이용가능한 메모리 공간의 퍼센트는 또한 동적으로 변화될 수 있다. 예를 들어, 이용가능한 메모리 공간 중 50%만이 한번에 동적 메모리 캐시에 할당될 수 있고, 이용가능한 메모리 공간의 90%는 차후에 동적 메모리 캐시에 할당될 수 있다. 이용가능한 메모리 공간의 퍼센트의 이러한 동적 할당은 원하는 만큼 자주 수행될 수 있다.
도 4는 동적 메모리 캐시를 할당하는데 이용가능한 메모리 공간의 양을 결정하는데 사용될 수 있는 함수의 일 실시예를 도시한다. 이 함수는 이용가능한 메모리 공간의 고정된 퍼센트(예를 들어, 50%)가 동적 메모리 캐시에 할당된 선형 램프 함수(linear ramped function)이다.
이 도면은 x-축을 따라 이용가능한 메모리 공간을 포함하고 y-축을 따라 동적 메모리 캐시의 사이즈를 포함한다. x 및 y-축에 있는 메모리 사이즈 값은, 이 실시예 및 후속 실시예에서, 본 실시예가 특정 값으로 제한되는 것은 아니므로 단지 예시를 위한 목적으로 제시된 것이다. 라인의 기울기는 동적 메모리 캐시에 할당된 이용가능한 메모리 공간의 퍼센트를 결정한다. 도시된 예는 50% 실시예를 도시한다.
5는 동적 메모리 캐시를 할당하는데 이용가능한 메모리 공간의 양을 결정하는데 사용될 수 있는 함수의 다른 실시예를 도시한다. 이 함수는 동적으로 메모리 캐시 사이즈를 조절하는 빈도를 감소시키는데 사용될 수 있는 계단형 함수(staircase function)이다.
동적으로 메모리 캐시 사이즈를 변화시키는 것은 여러 클린업 태스크(clean-up task)를 수행하는데 특정 시간 양을 사용한다. 예를 들어, 동적 메모리 캐시의 일부로서 사용된 메모리 블록이 메인 메모리 어레이로 리턴될 때, 이 메모리 블록 내 데이터는 이동될 필요가 있고 메모리 블록은 소거될 필요가 있다. 일 실시예에서, 동적 메모리 캐시의 SLC 메모리 블록은 MLC 메모리 블록으로 재할당된다. 추가적으로, 메모리 어드레스 포인터 및 다른 메모리 보관 태스크는 또한 동적 메모리 캐시 블록을 재할당하도록 수행되어야 한다. 따라서, 일반적으로 동적으로 메모리 캐시 사이즈를 변화시키는 빈도를 감소시키는 것이 바람직하다.
계단형 함수는 동적으로 메모리 캐시 사이즈를 변화시키는 빈도를 감소시키는 하나의 방법이다. 이것은 도 5의 도면을 참조하면 볼 수 있다. 사이즈의 변화를 라인의 기울기에 응답하여 수행하는 도 4의 실시예와 달리, 캐시 사이즈의 변화는 현재 계단이 이용가능한 메모리 공간의 다른 특정 임계값에 도달할 때까지 계단형 함수에서 발생하지 않는다.
예를 들어, 1 MB의 초기 동적 메모리 캐시 사이즈는 이용가능한 메모리 공간이 2 MB 임계값에 도달할 때까지는 변화하지 않는다. 이후 동적 메모리 캐시 사이즈는 2 MB로 증가된다. 도시된 이용가능한 메모리 공간 및 동적 메모리 캐시 사이즈는 이용가능한 메모리 공간의 상이한 양이 메모리의 상이한 양을 동적 메모리 캐시에 재할당하는 것을 트리거할 수 있으므로 단지 예시를 위한 목적으로 제시된 것이다. 유사하게, 도 5에 도시된 계단 함수의 대안적인 실시예는 더 길게 동일한 동적 메모리 캐시 사이즈에 유지되거나 및/또는 임계값에 도달할 때마다 더 많은 양의 메모리를 동적 메모리 캐시에 할당할 수 있다.
동적 메모리 캐시에 할당하는데 이용가능한 메모리 공간의 양을 결정하는 함수의 다른 실시예에서, 캐시 사이즈는 미사용된 이용가능한 메모리의 양이 특정 시간 기간 동안 증가하거나 감소하는지의 함수일 수 있다. 예를 들어, 도 4에 도시된 바와 같이 고정된 퍼센트 대신에, 이용가능한 메모리 공간 사이즈가 특정 시간 기간에 걸쳐 증가하는 경우, 함수는 이용가능한 메모리 공간 사이즈가 특정 시간 기간에 걸쳐 감소하는 경우보다 더 많은 퍼센트의 메모리를 동적 메모리 캐시 사이즈에 할당할 수 있다. 다른 실시예에서, 이용가능한 메모리 공간 사이즈가 특정 시간 기간에 걸쳐 감소하는 경우, 함수는 더 작은 퍼센트의 메모리를 동적 메모리 캐시 사이즈에 할당할 수 있다.
더 다른 실시예에서, 오버헤드(overhead)를 최소화하고 자유로운 공간의 대부분을 캐시에 동적으로 할당하기 위하여 자유로운 (소거된) 블록의 공통 풀이 동적 SLC 캐시 및 메인 MLC 메모리에 모두 사용된다. 자유로운 블록이 요구될 때 (즉, 자유로운 블록의 수가 제1 "시작" 임계값 미만에 있을 때) 동적 SLC 캐시 블록이 재사용되고 자유로운 블록의 수가 제2 "종료" 임계값 이상이 될 때까지 자유로운 풀에 추가된다. 시작 및 종료 임계값은 동적으로 조절될 수 있다. 예를 들어 동적 SLC 캐시 블록의 재사용을 최소화하기를 원하는 경우 호스트로부터 커맨드를 실행하는 전경(foreground) 동안 종료 임계값은 높지 않을 수 있으나, 호스트 커맨드가 없는 배경(background)에서는 종료 임계값은 더 높게 설정될 수 있다.
일 실시예에서, 동적 메모리 캐시 블록으로 할당된 메모리 블록은 연속된 메모리 블록이다. 다른 실시예에서, 동적 메모리 캐시 블록은 연속적이지 않다. 이러한 실시예에서, 비트 맵은 동적 메모리 캐시 블록으로 사용되는 메모리 블록을 나타내고 추적하는데 사용될 수 있다. 다른 실시예에서, SLC 또는 MLC를 나타내는 비트는 논리적-물리적 맵핑을 위해 테이블 내 다른 정보와 결합될 수 있다. 다른 실시예에서, 리스트는 SLC 및 MLC 블록을 위해 유지될 수 있다. 이러한 리스트는 일반적으로 구현의 용이함을 위해 링크된 리스트이다. 다른 실시예에서 SLC 또는 MLC를 나타내는 비트는 논리적-물리적 맵핑을 위해 테이블 내 다른 정보와 결합될 수 있다. 다른 실시예에서, 리스트는 추가적으로 SLC 및 MLC 블록을 위해 유지된다. 이러한 리스트는 일반적으로 구현의 용이함을 위해 링크된 리스트이다.
6은 메모리 디바이스(600)의 함수 블록도를 도시한다. 메모리 디바이스(600)는 외부 제어기(610)에 연결된다. 제어기(610)는 마이크로프로세서 또는 일부 다른 유형의 제어기일 수 있다. 메모리 디바이스(600) 및 제어기(610)는 메모리 시스템(620)의 일부를 형성한다. 제어기(610)는 호스트에 연결될 수 있고 제어기(610)는 호스트로부터 커맨드에 응답할 수 있다.
메모리 디바이스(600)는 메모리 셀(예를 들어, 비휘발성 메모리 셀)의 어레이(630)를 포함한다. 메모리 어레이(630)는 워드 라인 행 및 비트 라인 열의 뱅크(bank)로 배열된다. 일 실시예에서, 메모리 어레이(630)의 열은 메모리 셀의 시리즈 스트링을 포함한다.
어드레스 버퍼 회로(640)는 I/O 회로(660)를 통해 제공된 어드레스 신호를 래치하도록 제공된다. 어드레스 신호는 행 디코더(644) 및 열 디코더(646)에 의해 수신되고 디코딩되어 메모리 어레이(630)에 액세스한다.
메모리 디바이스(600)는 센스 증폭기 회로(650)를 사용하여 메모리 어레이 열 내 전압 또는 전류 변화를 센싱(sensing)하는 것에 의해 메모리 어레이(630) 내 데이터를 판독한다. 센스 증폭기 회로(650)는 일 실시예에서 메모리 어레이(630)로부터 데이터의 행을 판독하고 래치하도록 연결된다. 데이터 입력 및 출력 버퍼 회로(660)는 양방향 데이터 통신을 위해 및 제어기(610)와 복수의 데이터 연결(662)을 통해 어드레스 통신을 위해 포함된다. 기록 회로(655)는 데이터를 메모리 어레이에 기록하기 위해 제공된다.
메모리 제어 회로(670)는 제어기(610)로부터 제어 연결(672) 상에 제공된 신호를 디코딩한다. 이들 신호는 데이터 판독, 데이터 기록(프로그램), 및 소거 동작을 포함하는, 메모리 어레이(630) 상의 동작을 제어하는데 사용된다. 메모리 제어 회로(670)는 상태 기계, 시퀀서, 또는 메모리 제어 신호를 생성하는 일부 다른 유형의 제어기일 수 있다. 일 실시예에서, 메모리 제어 회로(670) 및/또는 외부 제어기(610)는 동적으로 메모리 캐시 사이즈의 조절의 실행을 제어하도록 구성된다.
도 6에 도시된 메모리 디바이스는 메모리의 특징을 기본적으로 이해하는 것을 용이하게 하기 위해 간략화된 것이다. 플래시 메모리의 내부 회로 및 함수의 보다 상세히 이해는 기술 분야에 통상의 지식을 가진 자에게는 알려진 것이다.
결론
요약하면, 동적 메모리 캐시 사이즈 조절을 위한 방법의 하나 이상의 실시예는 (예를 들어, SLC로서 사용되는) 메모리 캐시에 할당된 메모리의 양을 동적으로 조절함으로써 메모리 디바이스 내 유저 데이터에 대해 증가된 용량, 성능(판독 또는 기록) 및/또는 신뢰성을 제공할 수 있다.
특정 실시예가 본 명세서에 도시되고 설명되었으나, 이 기술 분야에 통상의 지식을 가진 자라면 동일한 목적을 달성하도록 계산된 임의의 배열이 도시된 특정 실시예 대신에 사용될 수 있다는 것을 이해할 수 있을 것이다. 본 발명의 많은 변형은 이 기술 분야에 통상의 지식을 가진 자에게는 명백할 것이다. 따라서, 본 출원은 본 발명의 변형 또는 변경을 포함하도록 의도된다.

Claims (19)

  1. 동적 메모리 캐시 사이즈 조절을 위한 방법으로서,
    메모리 어레이에서 이용가능한 메모리 공간을 결정하는 단계; 및
    상기 이용가능한 메모리 공간에 응답하여 상기 메모리 어레이 내 메모리 캐시의 사이즈를 조절하는 단계를 포함하는, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  2. 제1항에 있어서,
    상기 메모리 어레이를 포함하는 메모리 디바이스의 파일 시스템이 지원되는지의 여부를 결정하는 단계; 및
    특정 파일 시스템이 지원되는 경우 동적 메모리 캐시 사이즈 조절을 인에이블하는 단계를 더 포함하는, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  3. 제1항에 있어서, 상기 이용가능한 메모리 공간은 사용을 위해 타깃 지정되지 않은 소거된 메모리(erased memory) 또는 유효하지 않은 데이터를 저장하는 미소거 메모리(unerased memory) 중 하나인 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  4. 제1항에 있어서, 상기 메모리 캐시의 사이즈는 상기 이용가능한 메모리 공간의 퍼센트인 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  5. 제4항에 있어서, 상기 퍼센트를 동적으로 조절하는 단계를 더 포함하는, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  6. 제4항에 있어서, 상기 이용가능한 메모리 공간의 퍼센트는 상기 이용가능한 메모리 공간의 가변적인 퍼센트인 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  7. 제1항에 있어서, 사이즈를 조절하는 단계는 상기 메모리 캐시로 사용하기 위해 상기 메모리 어레이의 제1 개수의 블록을 할당하는 단계 및 메인 메모리로 사용하기 위해 상기 메모리 어레이의 제2 개수의 블록을 할당하는 단계를 포함하는 것인 방법.
  8. 제7항에 있어서, 제1 개수의 블록을 할당하는 단계는 상기 메인 메모리의 일부로서 사용하기 위해 이전에 할당된 블록을 상기 메모리 캐시의 일부로서 사용하기 위해 할당하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  9. 제7항에 있어서, 상기 메인 메모리의 일부로서 사용하기 위해 할당된 블록 내 메모리 셀은 MLC 셀로서 프로그래밍되고, 상기 메모리 캐시의 일부로서 사용하기 위해 할당된 블록 내 메모리 셀은 SLC 셀로서 프로그래밍된 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  10. 제7항에 있어서, 상기 메인 메모리의 일부로서 사용하기 위해 이전에 할당된 블록을 상기 메모리 캐시의 일부로서 사용하기 위해 할당하는 단계는 상기 블록의 메모리 셀을 MLC 셀로서 프로그래밍하는 것을 상기 블록의 메모리 셀을 SLC 셀로서 프로그래밍하는 것으로 스위칭하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  11. 제2항에 있어서, 상기 메모리 디바이스의 파일 시스템이 지원되는지의 여부를 결정하는 단계는 상기 메모리 디바이스의 상기 파일 시스템이 동적 캐시 사이즈 조절을 지원하는지를 결정하는 단계 및 동적 메모리 캐시 사이즈 조절을 인에이블하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  12. 제2항에 있어서, 상기 메모리 디바이스의 파일 시스템이 지원되는지를 결정하는 단계는 논리적 블록 어드레스의 범위의 삭제를 허용하는 프로토콜을 지원하는 커맨드가 수신되었는지를 결정하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  13. 제2항에 있어서, 동적 메모리 캐시 사이즈 조절은 상기 특정 파일 시스템이 동적 메모리 캐시 사이즈 조절을 지원하지 않거나 또는 상기 메모리 디바이스의 논리적 블록 어드레스의 범위의 삭제를 지원하는 커맨드가 수신되지 않는 경우에 디스에이블되는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
  14. 메모리 디바이스로서,
    메모리 캐시를 포함하는 메모리 셀의 어레이; 및
    메모리 셀의 어레이에 연결되어, 메모리 셀의 어레이에서 이용가능한 메모리를 결정하고 상기 이용가능한 메모리에 응답하여 상기 메모리 캐시의 사이즈를 조절하도록 구성된 메모리 제어 회로를 포함하는 메모리 디바이스.
  15. 제14항에 있어서, 상기 메모리 캐시의 사이즈를 조절하는 단계는 메모리 셀이 SLC 셀로서 프로그래밍된 어레이의 블록의 수를 조절하는 단계를 포함하는 것인 메모리 디바이스.
  16. 제14항에 있어서, 상기 메모리 제어 회로는 사용되는 파일 시스템에 응답하여 동적 메모리 캐시 사이즈 조절을 인에이블 또는 디스에이블하도록 더 구성된 것인 메모리 디바이스.
  17. 제14항에 있어서, 상기 메모리 제어 회로는 이용가능한 메모리가 복수의 이용가능한 메모리 임계값 중 하나에 도달한 것에 응답하여 상기 메모리 캐시의 사이즈를 증가시키도록 구성된 것인 메모리 디바이스.
  18. 제17항에 있어서, 상기 복수의 이용가능한 메모리 임계값은 이용가능한 메모리의 계단형 함수를 형성하는 것인 메모리 디바이스.
  19. 제14항에 있어서, 상기 메모리 제어 회로는 상기 이용가능한 메모리가 특정 시간 기간에 걸쳐 증가하고 있는지 또는 감소하고 있는지의 여부의 함수로서 상기 메모리 캐시의 사이즈를 동적으로 조절하도록 구성된 것인 메모리 디바이스.
KR1020137033029A 2011-05-31 2012-05-08 메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절 KR101547418B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/118,721 2011-05-31
US13/118,721 US8886911B2 (en) 2011-05-31 2011-05-31 Dynamic memory cache size adjustment in a memory device
PCT/US2012/036923 WO2012166304A2 (en) 2011-05-31 2012-05-08 Dynamic memory cache size adjustment in a memory device

Publications (2)

Publication Number Publication Date
KR20140016377A true KR20140016377A (ko) 2014-02-07
KR101547418B1 KR101547418B1 (ko) 2015-08-25

Family

ID=47260161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033029A KR101547418B1 (ko) 2011-05-31 2012-05-08 메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절

Country Status (7)

Country Link
US (2) US8886911B2 (ko)
EP (1) EP2715548B1 (ko)
JP (1) JP5808853B2 (ko)
KR (1) KR101547418B1 (ko)
CN (1) CN103562883B (ko)
TW (1) TWI456392B (ko)
WO (1) WO2012166304A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180067019A (ko) * 2016-12-12 2018-06-20 주식회사 엘지유플러스 캐시를 이용한 파일 실행 방법 및 그 장치
KR20180121155A (ko) * 2017-04-28 2018-11-07 주식회사 엘지유플러스 가상 파일시스템 처리를 위한 장치 및 그 방법

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311969B2 (en) 2011-07-22 2016-04-12 Sandisk Technologies Inc. Systems and methods of storing data
KR20130060791A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
US9348741B1 (en) * 2011-12-19 2016-05-24 Western Digital Technologies, Inc. Systems and methods for handling write data access requests in data storage devices
US20130219146A1 (en) * 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for a configurable address space for non-volatile memory
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US9128845B2 (en) * 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
KR20140069659A (ko) * 2012-11-29 2014-06-10 성균관대학교산학협력단 플래시 메모리용 파일 시스템
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
US9569352B2 (en) * 2013-03-14 2017-02-14 Sandisk Technologies Llc Storage module and method for regulating garbage collection operations based on write activity of a host
KR102121333B1 (ko) * 2013-10-28 2020-06-11 에스케이하이닉스 주식회사 반도체 시스템 및 이의 동작 방법
US9558124B2 (en) * 2013-11-08 2017-01-31 Seagate Technology Llc Data storage system with passive partitioning in a secondary memory
US9471254B2 (en) * 2014-04-16 2016-10-18 Sandisk Technologies Llc Storage module and method for adaptive burst mode
US10430328B2 (en) * 2014-09-16 2019-10-01 Sandisk Technologies Llc Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters
US10452280B2 (en) * 2014-10-03 2019-10-22 International Business Machines Corporation Hybrid storage system employing reconfigurable memory
US10102118B2 (en) * 2014-10-30 2018-10-16 Toshiba Memory Corporation Memory system and non-transitory computer readable recording medium
US11347637B2 (en) 2014-10-30 2022-05-31 Kioxia Corporation Memory system and non-transitory computer readable recording medium
US9542328B2 (en) * 2015-01-26 2017-01-10 International Business Machines Corporation Dynamically controlling a file system write cache
WO2016122466A1 (en) * 2015-01-27 2016-08-04 Hewlett Packard Enterprise Development Lp Transferring a variable data payload
CN107430879B (zh) * 2015-05-08 2020-07-21 桑迪士克科技有限责任公司 非易失性储存装置的数据映射
US10096355B2 (en) * 2015-09-01 2018-10-09 Sandisk Technologies Llc Dynamic management of programming states to improve endurance
US20170075812A1 (en) * 2015-09-16 2017-03-16 Intel Corporation Technologies for managing a dynamic read cache of a solid state drive
US10140030B2 (en) 2015-11-02 2018-11-27 International Business Machines Corporation Dynamic modulation of cache memory
US10037149B2 (en) * 2016-06-17 2018-07-31 Seagate Technology Llc Read cache management
US9990158B2 (en) 2016-06-22 2018-06-05 Sandisk Technologies Llc Storage system and method for burst mode management using transfer RAM
US10552327B2 (en) * 2016-08-23 2020-02-04 Apple Inc. Automatic cache partitioning
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
US10049047B1 (en) 2017-03-10 2018-08-14 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
US10095626B2 (en) 2017-03-10 2018-10-09 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
TWI630540B (zh) * 2017-07-13 2018-07-21 慧榮科技股份有限公司 資料儲存裝置及非揮發式記憶體操作方法
US10347329B2 (en) 2017-08-29 2019-07-09 Micron Technology, Inc. Reflow protection
US10572388B2 (en) 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
US10545685B2 (en) 2017-08-30 2020-01-28 Micron Technology, Inc. SLC cache management
US10522229B2 (en) 2017-08-30 2019-12-31 Micron Technology, Inc. Secure erase for data corruption
US10096380B1 (en) 2017-08-31 2018-10-09 Micron Technology, Inc. Erase page check
US10579288B2 (en) 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
JP2022062264A (ja) * 2017-09-22 2022-04-19 キオクシア株式会社 メモリシステム
JP7030463B2 (ja) * 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
US10409726B2 (en) * 2017-10-30 2019-09-10 Micron Technology, Inc. Dynamic L2P cache
US10908832B2 (en) 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
US10521146B1 (en) 2017-11-09 2019-12-31 Micron Technology, Inc. UFS based idle time garbage collection management
US10229735B1 (en) 2017-12-22 2019-03-12 Intel Corporation Block management for dynamic single-level cell buffers in storage devices
CN108287794A (zh) * 2018-01-26 2018-07-17 国科美国研究实验室 Nand闪存的动态管理方法
KR102535104B1 (ko) * 2018-03-19 2023-05-23 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10909040B2 (en) 2018-04-19 2021-02-02 Intel Corporation Adaptive calibration of nonvolatile memory channel based on platform power management state
CN108572924B (zh) * 2018-04-20 2021-10-08 华中科技大学 一种3d mlc闪存设备的请求处理方法
US11341048B2 (en) 2018-10-29 2022-05-24 Micron Technology, Inc. SLC cache allocation
US20200183838A1 (en) * 2018-12-10 2020-06-11 International Business Machines Corporation Dynamic cache resize taking into account underlying raid characteristics
KR20200091679A (ko) 2019-01-23 2020-07-31 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10983829B2 (en) 2019-07-12 2021-04-20 Micron Technology, Inc. Dynamic size of static SLC cache
US11237732B2 (en) * 2019-08-06 2022-02-01 Intel Corporation Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory
US20210042236A1 (en) * 2019-08-06 2021-02-11 Micron Technology, Inc. Wear leveling across block pools
US10950313B1 (en) 2019-08-28 2021-03-16 Micron Technology, Inc. Responding to changes in available power supply
KR20210057254A (ko) 2019-11-11 2021-05-21 삼성전자주식회사 스토리지 장치 및 그 동작방법
US11656773B2 (en) * 2020-04-28 2023-05-23 EMC IP Holding Company LLC Automatic management of file system capacity using predictive analytics for a storage system
US11740789B2 (en) 2020-05-18 2023-08-29 EMC IP Holding Company LLC Automated storage capacity provisioning using machine learning techniques
US11366754B2 (en) 2020-07-28 2022-06-21 Micron Technology, Inc. Adjustable buffer memory space
JP2022030146A (ja) * 2020-08-06 2022-02-18 キオクシア株式会社 メモリシステムおよび書き込み制御方法
US11449229B2 (en) 2020-10-20 2022-09-20 Red Hat, Inc. Dynamically resizing a region of volatile memory based on a charge level of a backup battery supply
US11256620B1 (en) 2020-11-13 2022-02-22 Micron Technology, Inc. Cache management based on memory device over-provisioning
US20220188242A1 (en) * 2020-12-11 2022-06-16 Micron Technology, Inc. Multi-tier cache for a memory system
US11908504B2 (en) 2021-04-13 2024-02-20 Seagate Technology Llc Front end buffer having ferroelectric field effect transistor (FeFET) based memory
CN113805812B (zh) * 2021-09-22 2024-03-05 深圳宏芯宇电子股份有限公司 一种缓存管理方法、装置、设备及存储介质
TWI793932B (zh) 2021-12-21 2023-02-21 建興儲存科技股份有限公司 固態儲存裝置及其相關的寫入控制方法
US20240061589A1 (en) * 2022-08-17 2024-02-22 Micron Technology, Inc. Code rate as function of logical saturation
CN115168247B (zh) * 2022-09-02 2022-12-02 北京登临科技有限公司 用于并行处理器中动态共享存储空间的方法及相应处理器
TWI814666B (zh) * 2022-12-14 2023-09-01 慧榮科技股份有限公司 資料儲存裝置與動態決定緩存器大小的方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7752391B2 (en) * 2006-01-20 2010-07-06 Apple Inc. Variable caching policy system and method
JP4805696B2 (ja) * 2006-03-09 2011-11-02 株式会社東芝 半導体集積回路装置およびそのデータ記録方式
JP2007305210A (ja) * 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US7711890B2 (en) * 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
JP2009003569A (ja) * 2007-06-19 2009-01-08 Toshiba Corp 半導体記憶装置
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
US8484432B2 (en) * 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
JP4558054B2 (ja) * 2008-03-11 2010-10-06 株式会社東芝 メモリシステム
KR101456592B1 (ko) 2008-06-17 2014-10-31 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 플래그 셀 분석방법
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100017556A1 (en) 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
JP2010026933A (ja) * 2008-07-23 2010-02-04 Toshiba Corp メモリシステム、ホスト装置
TWI385516B (zh) * 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
US8407400B2 (en) * 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US20110107042A1 (en) * 2009-11-03 2011-05-05 Andrew Herron Formatting data storage according to data classification
US8677054B1 (en) * 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8402243B2 (en) * 2010-02-25 2013-03-19 Apple Inc. Dynamically allocating number of bits per cell for memory locations of a non-volatile memory
US20110252187A1 (en) * 2010-04-07 2011-10-13 Avigdor Segal System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory
US9021177B2 (en) * 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US9158695B2 (en) * 2011-08-09 2015-10-13 Seagate Technology Llc System for dynamically adaptive caching
US9152548B2 (en) * 2012-01-17 2015-10-06 Vmware, Inc. Controlling access to a privileged resource in user-mode system level mobile virtualization using a ptrace () system call
US9804960B2 (en) * 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180067019A (ko) * 2016-12-12 2018-06-20 주식회사 엘지유플러스 캐시를 이용한 파일 실행 방법 및 그 장치
KR20180121155A (ko) * 2017-04-28 2018-11-07 주식회사 엘지유플러스 가상 파일시스템 처리를 위한 장치 및 그 방법

Also Published As

Publication number Publication date
US20150026416A1 (en) 2015-01-22
EP2715548A2 (en) 2014-04-09
WO2012166304A3 (en) 2013-01-24
KR101547418B1 (ko) 2015-08-25
US8886911B2 (en) 2014-11-11
US9195604B2 (en) 2015-11-24
TW201301031A (zh) 2013-01-01
CN103562883A (zh) 2014-02-05
US20120311293A1 (en) 2012-12-06
TWI456392B (zh) 2014-10-11
WO2012166304A2 (en) 2012-12-06
JP2014515531A (ja) 2014-06-30
CN103562883B (zh) 2016-05-18
JP5808853B2 (ja) 2015-11-10
EP2715548A4 (en) 2014-12-17
EP2715548B1 (en) 2019-10-30

Similar Documents

Publication Publication Date Title
KR101547418B1 (ko) 메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절
US9645896B2 (en) Data storage device and flash memory control method
JP5728672B2 (ja) ハイブリッドメモリ管理
US8200904B2 (en) System and method for clearing data from a cache
US9418017B2 (en) Hot memory block table in a solid state storage device
US8966163B2 (en) Non-volatile memory device and method for programming the same
CN111095226B (zh) 具有动态高速缓冲存储器管理的存储器装置
US20140013035A1 (en) Solid state storage device controller with expansion mode
KR102596407B1 (ko) 저장 장치 및 그 동작 방법
KR20170035155A (ko) 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
CN111435289B (zh) 映射数据访问性能提高的存储器控制器及其操作方法
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US20100030948A1 (en) Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system
KR20120106801A (ko) 온-칩 폴딩을 위한 데이터 전송
KR20120106800A (ko) 데이터의 온-칩 폴딩을 사용한 복수-기어 제어를 가진 비휘발성 메모리
KR20100010355A (ko) 플래시 메모리 장치 및 그것의 프로그램 및 소거 방법
KR20210099184A (ko) 저장 디바이스의 순차적 데이터 최적화 서브 영역
KR20210026431A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20120052216A (ko) 위성 파일 시스템을 구비한 멀티-뱅크 비휘발성 메모리 시스템
US9507706B2 (en) Memory system controller including a multi-resolution internal cache
US11709610B2 (en) Memory system, memory controller and operating method
KR20210130340A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20230016299A (ko) 메모리 장치 및 그 동작 방법

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: 20180801

Year of fee payment: 4