KR20140016377A - 메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절 - Google Patents
메모리 디바이스에서의 동적 메모리 캐시 사이즈 조절 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/224—Disk storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
- G06F2212/6046—Using a specific cache allocation policy other than replacement policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary 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
본 실시예는 일반적으로 메모리에 관한 것이고, 특정 실시예는 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은 메모리 시스템의 일 실시예의 블록도.
도 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항에 있어서,
상기 메모리 어레이를 포함하는 메모리 디바이스의 파일 시스템이 지원되는지의 여부를 결정하는 단계; 및
특정 파일 시스템이 지원되는 경우 동적 메모리 캐시 사이즈 조절을 인에이블하는 단계를 더 포함하는, 동적 메모리 캐시 사이즈 조절을 위한 방법. - 제1항에 있어서, 상기 이용가능한 메모리 공간은 사용을 위해 타깃 지정되지 않은 소거된 메모리(erased memory) 또는 유효하지 않은 데이터를 저장하는 미소거 메모리(unerased memory) 중 하나인 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제1항에 있어서, 상기 메모리 캐시의 사이즈는 상기 이용가능한 메모리 공간의 퍼센트인 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제4항에 있어서, 상기 퍼센트를 동적으로 조절하는 단계를 더 포함하는, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제4항에 있어서, 상기 이용가능한 메모리 공간의 퍼센트는 상기 이용가능한 메모리 공간의 가변적인 퍼센트인 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제1항에 있어서, 사이즈를 조절하는 단계는 상기 메모리 캐시로 사용하기 위해 상기 메모리 어레이의 제1 개수의 블록을 할당하는 단계 및 메인 메모리로 사용하기 위해 상기 메모리 어레이의 제2 개수의 블록을 할당하는 단계를 포함하는 것인 방법.
- 제7항에 있어서, 제1 개수의 블록을 할당하는 단계는 상기 메인 메모리의 일부로서 사용하기 위해 이전에 할당된 블록을 상기 메모리 캐시의 일부로서 사용하기 위해 할당하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제7항에 있어서, 상기 메인 메모리의 일부로서 사용하기 위해 할당된 블록 내 메모리 셀은 MLC 셀로서 프로그래밍되고, 상기 메모리 캐시의 일부로서 사용하기 위해 할당된 블록 내 메모리 셀은 SLC 셀로서 프로그래밍된 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제7항에 있어서, 상기 메인 메모리의 일부로서 사용하기 위해 이전에 할당된 블록을 상기 메모리 캐시의 일부로서 사용하기 위해 할당하는 단계는 상기 블록의 메모리 셀을 MLC 셀로서 프로그래밍하는 것을 상기 블록의 메모리 셀을 SLC 셀로서 프로그래밍하는 것으로 스위칭하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제2항에 있어서, 상기 메모리 디바이스의 파일 시스템이 지원되는지의 여부를 결정하는 단계는 상기 메모리 디바이스의 상기 파일 시스템이 동적 캐시 사이즈 조절을 지원하는지를 결정하는 단계 및 동적 메모리 캐시 사이즈 조절을 인에이블하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제2항에 있어서, 상기 메모리 디바이스의 파일 시스템이 지원되는지를 결정하는 단계는 논리적 블록 어드레스의 범위의 삭제를 허용하는 프로토콜을 지원하는 커맨드가 수신되었는지를 결정하는 단계를 포함하는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 제2항에 있어서, 동적 메모리 캐시 사이즈 조절은 상기 특정 파일 시스템이 동적 메모리 캐시 사이즈 조절을 지원하지 않거나 또는 상기 메모리 디바이스의 논리적 블록 어드레스의 범위의 삭제를 지원하는 커맨드가 수신되지 않는 경우에 디스에이블되는 것인, 동적 메모리 캐시 사이즈 조절을 위한 방법.
- 메모리 디바이스로서,
메모리 캐시를 포함하는 메모리 셀의 어레이; 및
메모리 셀의 어레이에 연결되어, 메모리 셀의 어레이에서 이용가능한 메모리를 결정하고 상기 이용가능한 메모리에 응답하여 상기 메모리 캐시의 사이즈를 조절하도록 구성된 메모리 제어 회로를 포함하는 메모리 디바이스. - 제14항에 있어서, 상기 메모리 캐시의 사이즈를 조절하는 단계는 메모리 셀이 SLC 셀로서 프로그래밍된 어레이의 블록의 수를 조절하는 단계를 포함하는 것인 메모리 디바이스.
- 제14항에 있어서, 상기 메모리 제어 회로는 사용되는 파일 시스템에 응답하여 동적 메모리 캐시 사이즈 조절을 인에이블 또는 디스에이블하도록 더 구성된 것인 메모리 디바이스.
- 제14항에 있어서, 상기 메모리 제어 회로는 이용가능한 메모리가 복수의 이용가능한 메모리 임계값 중 하나에 도달한 것에 응답하여 상기 메모리 캐시의 사이즈를 증가시키도록 구성된 것인 메모리 디바이스.
- 제17항에 있어서, 상기 복수의 이용가능한 메모리 임계값은 이용가능한 메모리의 계단형 함수를 형성하는 것인 메모리 디바이스.
- 제14항에 있어서, 상기 메모리 제어 회로는 상기 이용가능한 메모리가 특정 시간 기간에 걸쳐 증가하고 있는지 또는 감소하고 있는지의 여부의 함수로서 상기 메모리 캐시의 사이즈를 동적으로 조절하도록 구성된 것인 메모리 디바이스.
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)
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)
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)
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 |
-
2011
- 2011-05-31 US US13/118,721 patent/US8886911B2/en active Active
-
2012
- 2012-05-08 EP EP12794100.3A patent/EP2715548B1/en active Active
- 2012-05-08 JP JP2014513523A patent/JP5808853B2/ja active Active
- 2012-05-08 CN CN201280025689.2A patent/CN103562883B/zh active Active
- 2012-05-08 WO PCT/US2012/036923 patent/WO2012166304A2/en active Application Filing
- 2012-05-08 KR KR1020137033029A patent/KR101547418B1/ko active IP Right Grant
- 2012-05-25 TW TW101118861A patent/TWI456392B/zh active
-
2014
- 2014-10-09 US US14/510,179 patent/US9195604B2/en active Active
Cited By (2)
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 |