IP Library Granted Patent US 10,552,325
Granted Patent B2
US 10,552,325 · App. 15/958,563 · Granted Feb 4, 2020

Reducing write-backs to memory by controlling the age of cache lines in lower level cache

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 10,552,325
App. No.
15/958,563
Granted
Feb 4, 2020
Kind
B2
Abstract

A method and apparatus for reducing write-backs to memory is disclosed herein. The method includes determining whether a read/write request entering a lower level cache is a cache line containing modified data, and responsive to determining that the read/write request is not a cache line containing modified data, manipulating age information of the cache line to reduce a number of write-backs to memory.

Claims (71)

1. A method for evicting at least one cache line from a lower level cache of a storage class memory, comprising:

receiving at least one of a read and a write request at the storage class memory;

upon receiving the at least one of the read and write request, determining if the at least one of the read and write request at the storage class memory is directed to a dirty cache line;

upon determining the at least one of the read and write request is directed to a dirty cache line, determining if the at least one of the read and write request at the storage class memory is directed to a cache hit; and

upon determining the at least one of the read and write request does not result in a cache hit:

evicting from the lower level cache a least recently used cache line other than the dirty cache line; and

returning to the receiving the at least one of the read and write request at the storage class memory.

2. The method according to claim 1 , wherein the receiving the at least one of the read and write request at the storage class memory is at the lower level cache.

3. The method according to claim 1 , wherein the storage class memory has three levels of cache.

4. The method according to claim 1 , wherein the dirty cache line is line where there is a cache hit.

5. The method according to claim 1 , further comprising:

determining if the at least one of the read and the write request at the storage class memory is a write request or a read request; and

determining if the at least one of the read and write request at the storage class memory is directed to a clean cache line.

6. The method according to claim 5 , wherein the clean cache line is a line wherein there is not a cache hit.

7. The method according to claim 5 , further comprising:

determining, through a processor, if a cache hit occurs when the at least one of the read and the write request is a write request.

8. The method according to claim 7 , further comprising:

updating an age information of a cache line when the cache hit occurs.

9. The method according to claim 7 , further comprising:

updating an age information of the cache line when a cache hit does not occur; and

evicting the least recently used cache line and returning to the receiving the at least one of the read and write request at the storage class memory.

10. The method according to claim 1 , further comprising:

determining, through a processor, if a cache hit occurs when the at least one of the read and the write request is a read request.

11. The method according to claim 10 , further comprising:

not updating an age of a cache line when a cache hit does not occur.

12. The method according to claim 11 , further comprising:

evicting the least recently used cache line and returning to the receiving the at least one of the read and write request at the storage class memory.

13. The method according to claim 10 , further comprising:

updating an age of a cache line when a cache hit does not occur.

14. The method according to claim 13 , further comprising:

evicting the least recently used cache line and returning to the receiving the at least one of the read and write request at the storage class memory after updating the age of the cache line when the cache hit does not occur.

15. The method according to claim 10 , further comprising:

not updating an age of a cache line when a cache hit occurs.

16. The method according to claim 15 , further comprising:

reverting to receiving at least one of a read and a write request at the storage class memory after the not updating the age of the cache line when the cache hit occurs.

17. The method according to claim 10 , further comprising:

reverting to receiving at least one of a read and a write request at the storage class memory when the cache hit occurs.

18. The method according to claim 10 , further comprising:

when a cache hit does not occur, not updating an age of a cache line.

19. The method according to claim 18 , further comprising:

evicting the least recently used cache line after not updating the age of a cache line.

20. The method according to claim 19 , further comprising:

reverting to receiving at least one of a read and a write request at the storage class memory after the evicting the least recently used cache line.

21. An apparatus, comprising:

means for receiving at least one of a read and a write request at a storage class memory;

means for, upon receiving the at least one of the read and write request, determining if the at least one of the read and write request at the storage class memory is directed to a dirty cache line;

means for, upon determining the at least one of the read and write request is directed to a dirty cache line, determining if the at least one of the read and write request at the storage class memory is directed to a cache hit; and

means for, upon determining the at least one of the read and write request does not result in a cache hit, evicting from the lower level cache a least recently used cache line other than the dirty cache line.

22. The apparatus according to claim 21 , further comprising:

processor means for determining, when a cache hit occurs when the at least one of the read and the write request is a read request.

23. An apparatus, comprising:

means for receiving at least one of a read and a write request at a memory;

means for, upon receiving the at least one of the read and write request, comparing the at least one read and write request to a memory to determine if the at least one of the read and write request at a storage class memory is directed to a dirty cache line;

means for, upon determining the at least one of the read and write request is directed to a dirty cache line, updating data associated with the at least one read and write request; and

means for, upon determining the at least one of the read and write request does not result in a cache hit, evicting from the lower level cache a least recently used cache line other than the dirty cache line.

24. The apparatus according to claim 23 , wherein the memory is a storage class memory.

25. A method for evicting at least one cache line from a lower level cache of a storage class memory, comprising:

receiving at least one write request at the storage class memory;

upon receiving the at least one write request, determining if the at least one write request at the storage class memory is directed to a dirty cache line;

upon determining the at least one write request is directed to a dirty cache line, comparing the at least one write request to a cache;

upon comparing the at least one write request to a cache, determining if the at least one write request at the storage class memory is directed to a cache hit; and

upon determining the at least one write request does not result in a cache hit:

evicting from the lower level cache a least recently used cache line other than the dirty cache line; and

returning to the receiving the at least one write request at the storage class memory.

26. An arrangement configured to evict at least one cache line in a write request from a lower level cache of a storage class memory, comprising:

means for receiving at least one write request at the storage class memory;

means for upon receiving the at least one write request, determining if the at least one write request at the storage class memory is directed to a dirty cache line;

processor means for, upon determining the at least one write request at the storage class memory is directed to a dirty cache line, comparing the at least one write request to a cache and for determining, when a dirty cache line is present, if the at least one write request at the storage class memory is directed to a cache hit; and

means for, upon determining the at least one write request does not result in a cache hit:

evicting from the lower level cache a least recently used cache line other than the dirty cache line; and

returning to the receiving the at least one write request at the storage class memory.

Assignments (11)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 Jan 30, 2019
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048182/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2019
From: KAMRUZZAMAN, MD
To: HGST NETHERLANDS B.V.
Reel/Frame 048187/0015 →