IP Library Granted Patent US 11,188,474
Granted Patent B2
US 11,188,474 · App. 16/012,607 · Granted Nov 30, 2021

Balanced caching between a cache and a non-volatile memory based on rates corresponding to the cache and the non-volatile memory

Inventor: Arup De (San Jose, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/0888G06F12/0868G06F2212/1021
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 11,188,474
App. No.
16/012,607
Granted
Nov 30, 2021
Kind
B2
Abstract

Apparatuses, systems, methods, and computer program products are disclosed for balanced caching. An input circuit receives a request for data of non-volatile storage. A balancing circuit determines whether to execute a request by directly communicating with one or more of a cache and a non-volatile storage based on a first rate corresponding to the cache and a second rate corresponding to the non-volatile storage. A data access circuit executes a request based on a determination made by a balancing circuit.

Claims (46)

1. An apparatus comprising:

an input circuit that receives a request for data of non-volatile storage;

a balancing circuit that:

determines whether to execute the request by directly communicating with one or more of a cache and the non-volatile storage based on a first bandwidth corresponding to the cache and a second bandwidth corresponding to the non-volatile storage, wherein the cache and the non-volatile storage are part of the same memory device, a host accesses the memory device via a single bus, a ratio r is formed from the first bandwidth and the second bandwidth, r is a positive value, a first percentage of total accesses for the cache equals [r/(1+r)], a second percentage of total accesses for the memory equals [1/(1+r)], and the cache and the non-volatile storage are directly accessed based on the first percentage and the second percentage; and

moves pages between the cache and the non-volatile storage based on r; and

a data access circuit that executes the request based on the determination made by the balancing circuit.

2. The apparatus of claim 1 , further comprising a counting circuit that determines a cache hit count used to determine a cache hit ratio, wherein the balancing circuit uses the cache hit ratio to determine whether to execute the request by directly communicating with one or more of the cache and the non-volatile storage.

3. The apparatus of claim 1 , further comprising a counting circuit that determines a cache hit count used to determine a cache hit ratio, wherein the balancing circuit directly communicates with the cache in response to the cache hit ratio being less than a predetermined value.

4. The apparatus of claim 1 , further comprising a counting circuit that determines a cache hit count used to determine a cache hit ratio, wherein the balancing circuit directly communicates with the non-volatile storage in response to the cache hit ratio being greater than a predetermined value.

5. The apparatus of claim 1 , further comprising a counting circuit that determines a cache hit count used to determine a cache hit ratio, wherein the balancing circuit determines to move pages from the non-volatile storage to the cache in response to the cache hit ratio being less than r.

6. The apparatus of claim 1 , further comprising a counting circuit that determines a cache hit count used to determine a cache hit ratio, wherein the balancing circuit determines to move pages from the cache to the non-volatile storage in response to the cache hit ratio being greater than r.

7. The apparatus of claim 1 , wherein the data access circuit executes the request by directly communicating with the cache in response to the balancing circuit determining to execute the request by directly communicating with the cache.

8. The apparatus of claim 1 , wherein the data access circuit executes the request by bypassing communication with the cache in response to the balancing circuit determining to execute the request by directly communicating with the non-volatile storage.

9. The apparatus of claim 1 , wherein the memory device is a direct inline memory module card.

10. A method comprising:

receiving a request for data of non-volatile memory;

determining whether to access the data by directly communicating with one or more of a cache and the non-volatile memory based on a first bandwidth corresponding to the cache and a second bandwidth corresponding to the non-volatile storage, wherein the cache and the non-volatile memory are part of the same memory device, the memory device is a direct inline memory module card, a host accesses the memory device by a single bus, a ratio r is formed from the first bandwidth and the second bandwidth, r is a positive value, a first percentage of total accesses for the cache equals [r/(1+r)], a second percentage of total accesses for the memory equals [1/(1+r)], and the cache and the non-volatile memory are directly accessed based on the first percentage and the second percentage;

migrating pages between the cache and the non-volatile memory based on r;

in response to determining to access the data by directly communicating with the cache, accessing the data by directly communicating with the cache; and

in response to determining to access the data by directly communicating with the non-volatile memory, accessing the data by bypassing the cache and directly communicating with the non-volatile memory.

11. The method of claim 10 , further comprising, in response to determining to access the data by directly communicating with the cache and the non-volatile memory, accessing a first portion of the data by directly communicating with the cache and accessing a second portion of the data by directly communicating with the non-volatile memory.

12. The method of claim 10 , wherein determining whether to access the data by directly communicating with one or more of the cache and the non-volatile memory comprises determining a cache hit count and a total access count.

13. The method of claim 12 , further comprising determining to access the data by directly communicating with the cache in response to a relationship between the cache hit count and the total access count being less than a predetermined threshold.

14. The method of claim 12 , further comprising determining to access the data by directly communicating with the non-volatile memory in response to a relationship between the cache hit count and the total access count being greater than a predetermined threshold.

15. The method of claim 12 , further comprising determining to migrate pages from the non-volatile memory to the cache in response to a relationship between the cache hit count and the total access count being less than r.

16. The method of claim 12 , further comprising determining to migrate pages from the cache to the non-volatile memory in response to a relationship between the cache hit count and the total access count being greater than r.

17. A system comprising:

a cache;

a non-volatile memory, wherein the cache and the non-volatile memory are part of the same memory device and a host accesses the memory device via a single bus; and

a controller configured to:

determine a first bandwidth corresponding to the cache;

determine a second bandwidth corresponding to the non-volatile memory;

determine a ratio r formed from the first bandwidth and the second bandwidth, wherein r is a positive value;

determining a first percentage of total accesses for the cache equal to [r/(1+r)], and a second percentage of total accesses for the memory equal to [1/(1+r)];

move pages between the cache and the non-volatile memory based on r;

determine whether to directly communicate with one or more of the cache and the non-volatile memory based on the first percentage and the second percentage;

in response to determining to directly communicate with the cache, directly communicate with the cache; and

in response to determining to directly communicate with the non-volatile memory, bypass the cache and directly communicate with the non-volatile memory.

18. An apparatus comprising:

means for receiving a request to access data of a memory device;

means for determining a first bandwidth corresponding to a cache;

means for determining a second bandwidth corresponding to a memory device;

means for determining whether to access the data by directly communicating with one or more of the cache and the memory device based on the first bandwidth and the second bandwidth, wherein the cache and the memory device are part of the same non-volatile direct inline memory module, a host accesses the non-volatile direct inline memory module via a single bus, a ratio r is formed from the first bandwidth and the second bandwidth, r is a positive value, a first percentage of total accesses for the cache equals [r/(1+r)], a second percentage of total accesses for the memory equals [1/(1+r)], and the cache and the memory device are directly accessed based on the first percentage and the second percentage; and

means for moving pages between the cache and the memory device based on r.

19. The apparatus of claim 18 , further comprising means for directly communication with the cache in response to determining to access the data by directly communicating with the cache.

20. The apparatus of claim 18 , further comprising means for bypassing communication with the cache in response to determining to access the data by directly communicating with the memory device.

Assignments (8)
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2018
From: DE, ARUP
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046998/0545 →