IP Library Granted Patent US 8,732,409
Granted Patent B2
US 8,732,409 · App. 13/129,751 · Granted May 20, 2014

Cache management policy and corresponding device

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 8,732,409
App. No.
13/129,751
Granted
May 20, 2014
Kind
B2
Abstract

A cache management policy is provided, comprising a method for writing back to a memory ( 104 ) a data element set ( 122 ) stored in a cache ( 110 ). The method reduces the time some items stay in the cache, and thereby improves the utilization of the cache for some applications, especially for video applications. The method comprises determining that each one of the multiple data elements has been updated through at least one write request; marking the data element set as a write-back candidate, in dependency on said determination; and writing the write-back candidate to the memory.

Claims (66)

1. A method for writing back to a memory a data element set stored in a cache, the data element set comprising multiple data elements, the method comprising:

marking individually each one of the multiple data elements as updated through at least one write request;

determining that each one of the multiple data elements has been updated through at least one write request;

marking the data element set as a write-back candidate, in dependency on said determination; and

writing the write-back candidate to the memory substantially immediately after marking the data element set as a write-back candidate.

2. A method as in claim 1 comprising after the writing of the write-back candidate, marking the data element set as free.

3. A method as in claim 1 comprising after the writing of the write-back candidate, using the data element set to cache a read request or a further write request.

4. A method as in claim 1 , wherein a dirty mask comprises for each specific one of the multiple data elements a specific dirty bit for marking if the specific data element is updated through the write request, wherein the marking individually each one of the multiple data elements as updated through at least one write request, comprises

marking the specific dirty bit as dirty, upon receiving the write request updating the specific data element,

wherein the determining that each one of the multiple data elements have been updated comprises determining that all dirty bits in the dirty mask are marked dirty.

5. A method as in claim 4 , wherein the dirty mask is coupled to a counter, wherein the method comprises:

updating the counter, upon marking the specific dirty bit as dirty, wherein the determining that all dirty bits in the dirty mask are marked dirty comprises a determining that the counter has reached a counting value representative of the number of data elements in the data element set.

6. A method as in claim 5 , wherein the memory comprises an address range and the marking of the data element set as a write-back candidate is done conditionally on the write request being for an address in the address range.

7. A method as in claim 6 , wherein the cache is arranged with a supplementary cache for caching of a supplementary write request, the supplementary write request being for an address outside the address range.

8. A method as in claim 4 , wherein the marking of the data element set as a write-back candidate is done conditionally on a flag being set, the flag being arranged for being set and being reset.

9. A method as in claim 8 , wherein the writing of the write-back candidate is done upon determining that a free data element set is required.

10. A method as in claim 1 wherein

a time stamp is associated with the data set;

the marking the data element set as a write-back candidate comprises setting the time stamp to a predetermined value; and

the method comprises before the writing of the write-back candidate, selecting the write-back candidate from multiple data sets, by determining that the value of the time stamp is more or less than values of multiple time stamps associated with the multiple data sets.

11. A non-transitory computer readable medium storing computer-executable instructions which when executed in a controller are operable for writing back to a memory a data element set stored in a cache, the data element set comprising multiple data elements, the medium comprising instructions for:

marking individually each one of the multiple data elements as updated through at least one write request;

determining that each one of the multiple data elements has been updated through at least one write request;

marking the data element set as a write-back candidate, m dependency on said determination; and

writing the write-back candidate to the memory substantially immediately after marking the data element set as a write-back candidate.

12. A data processing system for writing back to a memory a data element set stored in a cache, the data element set comprising multiple data elements, the data processing system having computer executable instructions that enable the data process system to:

mark individually each one of the multiple data elements as updated through at least one write request;

determine that each one of the multiple data elements has been updated through at least one write request;

mark the data element set as a write-back candidate, in dependency on said determination; and

write the write-back candidate to the memory substantially immediately after marking the data element set as a write-back candidate.

13. A method for writing back to a memory a data element set stored in a cache, the data element set comprising multiple data elements, the method comprising:

marking individually each one of the multiple data elements as updated through at least one write request;

determining that each one of the multiple data elements has been updated through at least one write request;

marking the data element set as a write-back candidate, in dependency on said determination; and

writing the write-back candidate to the memory,

wherein the writing of the write-back candidate to the memory comprises sending the write-back candidate to a further cache together with a write-through flag, and

wherein the write-through flag indicates to the further cache to write the write-back candidate substantially directly to memory.

14. A method as in claim 13 comprising after the writing of the write-back candidate, marking the data element set as free.

15. A method as in claim 13 comprising after the writing of the write-back candidate, using the data element set to cache a read request or a further write request.

16. A method as in claim 13 , wherein a dirty mask comprises for each specific one of the multiple data elements a specific dirty bit for marking if the specific data element is updated through the write request, wherein the marking individually each one of the multiple data elements as updated through at least one write request, comprises

marking the specific dirty bit as dirty, upon receiving the write request updating the specific data element,

wherein the determining that each one of the multiple data elements have been updated comprises determining that all dirty bits in the dirty mask are marked dirty.

17. A method as in claim 16 , wherein the dirty mask is coupled to a counter, wherein the method comprises:

updating the counter, upon marking the specific dirty bit as dirty, wherein the determining that all dirty bits in the dirty mask are marked dirty comprises a determining that the counter has reached a counting value representative of the number of data elements in the data element set.

18. A method as in claim 17 , wherein the memory comprises an address range and the marking of the data element set as a write-back candidate is done conditionally on the write request being for an address in the address range.

19. A method as in claim 18 , wherein the cache is arranged with a supplementary cache for caching of a supplementary write request, the supplementary write request being for an address outside the address range.

20. A method as in claim 16 , wherein the marking of the data element set as a write-back candidate is done conditionally on a flag being set, the flag being arranged for being set and being reset.

21. A method as in claim 20 , wherein the writing of the write-back candidate is done upon determining that a free data element set is required.

22. A method as in claim 13 wherein

a time stamp is associated with the data set;

the marking the data element set as a write-back candidate comprises setting the time stamp to a predetermined value; and

the method comprises before the writing of the write-back candidate, selecting the write-back candidate from multiple data sets, by determining that the value of the time stamp is more or less than values of multiple time stamps associated with the multiple data sets.

23. A non-transitory computer readable medium storing computer-executable instructions which when executed in a controller are operable for writing back to a memory a data element set stored in a cache, the data element set comprising multiple data elements, the medium comprising instructions for:

marking individually each one of the multiple data elements as updated through at least one write request;

determining that each one of the multiple data elements has been updated through at least one write request;

marking the data element set as a write-back candidate, m dependency on said determination; and

writing the write-back candidate to the memory,

wherein the writing of the write-back candidate to the memory comprises sending the write-back candidate to a further cache together with a write-through flag, and

wherein the write-through flag indicates to the further cache to write the write-back candidate substantially directly to memory.

24. A data processing system for writing back to a memory a data element set stored in a cache, the data element set comprising multiple data elements, the data processing system having computer executable instructions that enable the data process system to:

mark individually each one of the multiple data elements as updated through at least one write request;

determine that each one of the multiple data elements has been updated through at least one write request;

mark the data element set as a write-back candidate, in dependency on said determination; and

write the write-back candidate to the memory,

wherein the writing of the write-back candidate to the memory comprises sending the write-back candidate to a further cache together with a write-through flag, and

wherein the write-through flag indicates to the further cache to write the write-back candidate substantially directly to memory.

Assignments (7)
SECURITY AGREEMENT Recorded Jul 9, 2021
From: MAXLINEAR, INC.; MAXLINEAR COMMUNICATIONS, LLC; EXAR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 056816/0089 →
RELEASE OF SECURITY INTEREST Recorded Jun 23, 2021
From: MUFG UNION BANK, N.A.
To: MAXLINEAR, INC.; EXAR CORPORATION; MAXLINEAR COMMUNICATIONS LLC
Reel/Frame 056656/0204 →
SUCCESSION OF AGENCY (REEL 042453 / FRAME 0001) Recorded Jul 1, 2020
From: JPMORGAN CHASE BANK, N.A.
To: MUFG UNION BANK, N.A.
Reel/Frame 053115/0842 →
SECURITY AGREEMENT Recorded May 12, 2017
From: MAXLINEAR, INC.; ENTROPIC COMMUNICATIONS, LLC (F/K/A ENTROPIC COMMUNICATIONS, INC.); EXAR CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042453/0001 →
MERGER AND CHANGE OF NAME Recorded May 19, 2015
From: ENTROPIC COMMUNICATIONS, INC.; EXCALIBUR SUBSIDIARY, LLC; ENTROPIC COMMUNICATIONS, LLC
To: ENTROPIC COMMUNICATIONS, LLC
Reel/Frame 035717/0628 →
MERGER AND CHANGE OF NAME Recorded May 18, 2015
From: EXCALIBUR ACQUISITION CORPORATION; ENTROPIC COMMUNICATIONS, INC.; ENTROPIC COMMUNICATIONS, INC.
To: ENTROPIC COMMUNICATIONS, INC.
Reel/Frame 035706/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2012
From: TRIDENT MICROSYSTEMS, INC.; TRIDENT MICROSYSTEMS (FAR EAST) LTD.
To: ENTROPIC COMMUNICATIONS, INC.
Reel/Frame 028146/0178 →