IP Library › Granted Patent US 9,710,173
Granted Patent B2
US 9,710,173 · App. 14/282,467 · Granted Jul 18, 2017

Read cache memory with DRAM class promotion

Inventors: Eugene Feng (San Jose, CA); Mathew Arcoleo (Campbell, CA)
Assignee: Micron Technology, Inc.
G06F3/0616G06F3/0608G06F3/0655G06F3/0685G06F3/0688G06F12/0806G06F12/0875G06F12/0888G06F12/1081G06F13/28G11C7/1072G11C29/44G11C29/765G06F2212/2532G06F2212/621G11C2029/0409G11C2207/2245Y02B60/1225Y02B60/1228
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,710,173
App. No.
14/282,467
Granted
Jul 18, 2017
Kind
B2
Abstract

The present disclosure includes methods and apparatuses for read cache memory. One apparatus includes a read cache memory apparatus comprising a first DRAM array, a first and a second NAND array, and a controller configured to manage movement of data between the DRAM array and the first NAND array, and between the first NAND array and the second NAND array.

Claims (47)

1. An apparatus, comprising:

a read cache memory device, comprising:

a dynamic random-access memory (DRAM) array, comprising a first class and a second class; and

a first NAND array and a second NAND array; and

a controller configured to:

dynamically mark bad pages within the first NAND array;

simultaneous to the dynamic marking, manage movement of data between the first class and the second class, between the DRAM array and the first NAND array, and between the first NAND array the second NAND array,

wherein data moved from the DRAM array to the first NAND array comprises a preset number of most-frequently visited page partitions among the second DRAM class that have passed a preset threshold value of frequency and wherein the controller is further configured to cache data from the DRAM array to the first NAND array based on a characteristic of the data;

wherein the data characteristic includes at least one of a number of times the data is requested and a stability of the data;

wherein data moved from the first NAND array to the second NAND array does not include the marked bad pages;

in response to the second NAND array reaching a first particular cached data threshold capacity, demote remaining cached data within the second NAND array to the DRAM array and erase the remaining data of the first NAND array,

wherein the first particular cached data threshold capacity is based on a total amount of cached data within the second NAND array meeting a maximum threshold amount; and

in response to the DRAM array meeting a second particular cached data threshold capacity that is based on a total amount of cached data within the first and the second classes of the DRAM array, evict a preset number of least-frequently visited page partitions from the DRAM array.

2. The apparatus of claim 1 , wherein the controller is further configured to cache data from the first NAND array to the second NAND array based on a characteristic of the data.

3. The apparatus of claim 1 , further comprising a direct memory access (DMA) linking the controller to the DRAM array, a DMA linking the controller to the first NAND array, and a DMA linking the controller to the second NAND array.

4. The apparatus of claim 1 , wherein the controller is further configured to track and report to a host device the actions of the read cache memory device via an interface.

5. A method for operating a memory, comprising:

promoting cached data from a first class of a dynamic random-access memory (DRAM) array to a second class of the DRAM array;

in response to the promoting, caching the data from the DRAM array to a first NAND array based on a preset number of most-frequently visited page partitions among the second DRAM class that have passed a preset threshold value of frequency and a characteristic of the data;

wherein the data characteristic includes at least one of a number of times the data is requested and a stability of the data:

simultaneous to the promoting and caching of the data from the DRAM, dynamically marking bad pages within the first NAND array; and

caching the data from the first NAND array to a second NAND array in response to the first NAND array meeting a first threshold cached data capacity,

wherein the data cached from the first NAND array to the second NAND array does not include the marked bad pages and wherein the first threshold cached data capacity is based on a total amount of cached data within the first NAND array meeting a maximum threshold amount;

in response to the second NAND array reaching a second threshold cached data capacity, demoting remaining cached data within the second NAND array to the DRAM array and erasing the remaining data of the first NAND array,

wherein the second threshold cached data capacity is based on a total amount of cached data within the second NAND array meeting a maximum threshold amount; and

in response to the DRAM array meeting a third cached data threshold capacity that is based on a total amount of cached data within the first and the second classes of the DRAM array, evict a preset number of least-frequently visited page partitions from the DRAM array.

6. The method of claim 5 , further comprising erasing the first NAND array in response to caching the data from the first NAND array to the second NAND array.

7. A device, comprising:

a dynamic random-access memory (DRAM) array comprising a class;

a first NAND array formed on the first DRAM array;

a second NAND array formed on the first NAND array;

and a controller configured to:

cache data meeting a first particular cached data threshold from the class of the DRAM array to the first NAND array,

wherein data moved from the DRAM array to the first NAND array comprises a preset number of most-frequently visited page partitions among the DRAM class that have passed a preset threshold value of frequency and wherein the controller is further configured to cache data from the DRAM array to the first NAND array based on a characteristic of the data;

wherein the data characteristic includes at least one of a number of times the data is requested and a stability of the data;

simultaneous to the caching of the data meeting the first particular cached data threshold, dynamically mark bad pages within the first NAND array;

simultaneous to the dynamically marking, cache data from the first NAND array to the second NAND array based on the capacity of the first NAND array,

wherein the data cached from the first NAND array to the second NAND array does not include the marked bad pages;

in response to the second NAND array reaching a second particular cached data threshold capacity, demote remaining cached data within the second NAND array to the DRAM array and erase the remaining data from the first NAND array,

wherein the second particular cached data threshold capacity is based on a total amount of cached data within the second NAND array meeting a maximum threshold amount; and

in response to caching the data meeting the first particular cached data threshold, evict data failing to meet the first particular cached data threshold from the class of the DRAM array; and

in response to the DRAM array meeting a third particular cached data threshold capacity that is based on a total amount of cached data within the DRAM array, evict a preset number of least-frequently visited page from the DRAM array.

8. The device of claim 7 , wherein the controller includes an ASIC device.

9. The device of claim 7 , wherein the first particular threshold includes data accessed a threshold number of times.

10. The device of claim 7 , wherein the first particular threshold includes data meeting a stability threshold.

11. The device of claim 7 , wherein the device is located between a host device and a solid state drive (SSD) or a third NAND device.

12. The device of claim 7 , including the controller configured to store information associated with the data cached from the DRAM array to the first NAND array and the data cached from the first NAND array to the second NAND array.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ORIGINAL ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED ON REEL 032932 FRAME 0760. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 5, 2014
From: FENG, EUGENE; ARCOLEO, MATHEW
To: MICRON TECHNOLOGY, INC.
Reel/Frame 034171/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2014
From: FENG, EUGENE; ARCOLEO, MATHEW
To: MICRON TECHNOLOGY, INC.
Reel/Frame 032932/0760 →
Continuity (1)
Related Publication 20150339064A1 · Nov 26, 2015