IP Library Granted Patent US 8,239,631
Granted Patent B2
US 8,239,631 · App. 12/429,908 · Granted Aug 7, 2012

System and method for replacing data in a 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 8,239,631
App. No.
12/429,908
Granted
Aug 7, 2012
Kind
B2
Abstract

A system and method for replacing data in a cache utilizes cache block validity information, which contains information that indicates that data in a cache block is no longer needed for processing, to maintain least recently used information of cache blocks in a cache set of the cache, identifies the least recently used cache block of the cache set using the least recently used information of the cache blocks in the cache set, and replaces data in the least recently used cache block of the cache set with data from main memory.

Claims (38)

1. A method for replacing data in a cache, the method comprising:

maintaining least recently used information of a plurality of groups of cache blocks in a cache set of the cache, wherein each group comprises two or more cache blocks;

maintaining least recently used information and validity information of each cache block within each group;

identifying the least recently used cache block of the cache set using the validity information, the least recently used information of the plurality of groups, and the least recently used information of the cache blocks in each group; and

replacing data in the least recently used cache block of the cache set with data from main memory.

2. The method of claim 1 , wherein the validity information comprises information that indicates that data in a cache block is no longer needed for processing.

3. The method of claim 2 further comprising setting a validity bit of a cache block to a predetermined value if data in the cache block is no longer needed for processing.

4. The method of claim 2 , wherein maintaining the least recently used information of a plurality of groups comprises keeping an order in time of the plurality of groups the same if the cache block validity information for a cache block within a group indicates that data in the cache block is no longer needed for processing.

5. The method of claim 2 , wherein maintaining the least recently used information of a plurality of groups comprises updating an order in time in terms of usage of two groups when data in a cache block of the two groups is used for processing, if the cache block validity information indicates that data in all of the cache blocks in the two groups is needed for processing.

6. The method of claim 5 , wherein maintaining the least recently used information of a plurality of groups further comprises updating an order in time in terms of usage of cache blocks in a group when data in one of the blocks in the group is used for processing.

7. The method of claim 5 , wherein each group contains the same number of cache blocks.

8. The method of claim 1 further comprising copying the data in the least recently used cache block of the cache set to the main memory if the least recently used cache block of the cache set contains data that is not reflected in the main memory.

9. A video processing system, the video processing system comprising:

main memory configured to store a data working set;

a cache coupled to the main memory and configured to cache a subset of the data working set;

a video processor coupled to the cache and configured to process the subset of the data working set; and a cache management unit configured to:

maintain least recently used information of a plurality of groups of cache blocks in a cache set of the cache, wherein each group comprises two or more cache blocks;

maintain least recently used information and validity information of each cache block within each group of cache blocks;

identify the least recently used cache block of the cache set using the validity information, least recently used information of the plurality of groups of cache blocks, and the least recently used information of the cache blocks in each group; and

replace data in the least recently used cache block of the cache set with data from the data working set stored at the main memory.

10. The video processing system of claim 9 , wherein the validity information comprises information that indicates that data in a cache block is no longer needed by the video processor for video processing.

11. The video processing system of claim 10 , wherein the cache management unit is further configured to set a validity bit of a cache block to a predetermined value if data in the cache block is no longer needed by the video processor for video processing.

12. The video processing system of claim 10 , wherein the cache management unit is further configured to:

keep an order in time in terms of usage of the plurality of groups the same if the cache block validity information for a cache block within a group indicates that data in the cache block is no longer needed for processing.

13. The video processing system of claim 10 , wherein the cache management unit is further configured to:

update an order in time in terms of usage of two groups in the cache set when data in a cache block of the two groups is used by the video processor, if the cache block validity information indicates that data in all of the cache blocks in the two groups is needed by the video processor for video processing.

14. The video processing system of claim 13 , wherein the cache management unit is further configured to update an order in time in terms of usage of cache blocks in a group when data in one of the blocks in the group is used by the video processor.

15. The video processing system of claim 13 , wherein each group contains the same number of cache blocks.

16. The video processing system of claim 9 , wherein the cache management unit is further configured to copy the data in the least recently used cache block of the cache set to the main memory if the least recently used cache block of the cache set contains data that is not reflected in the main memory.

17. A method for replacing data in a cache in a video processing system, the method comprising:

dividing cache blocks in a cache set into two hierarchical levels of cache blocks, wherein one level comprises a plurality of groups of cache blocks;

maintaining least recently used information of each group;

maintaining least recently used information and validity information of each cache block;

identifying the least recently used cache block of the cache set using the validity information, least recently used information of each group, and least recently used information of the cache blocks in each group; and

replacing data in the least recently used cache block of the cache set with data from main memory in the video processing system.

18. The method of claim 17 , wherein the cache block validity information comprises information that indicates that data in a cache block is no longer needed by the video processing system for video processing.

19. The method of claim 18 , wherein maintaining least recently used information of each group comprises keeping an order in time in terms of usage of two groups the same if the cache block validity information indicates that data in a cache block of the two groups is no longer needed for processing.

20. The method of claim 19 , wherein maintaining least recently used information of each group comprises updating an order in time in terms of usage of two groups when data in one of the two groups is used by the video processing system if the cache block validity information indicates that data in all of the cache blocks in the two groups is needed by the video processing system.

Assignments (20)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2010
From: NXP
To: NXP HOLDING 1 B.V.
Reel/Frame 023928/0489 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2010
From: TRIDENT MICROSYSTEMS (EUROPE) B.V.; NXP HOLDING 1 B.V.
To: TRIDENT MICROSYSTEMS (FAR EAST) LTD.
Reel/Frame 023928/0552 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2009
From: VAN DE WAERDT, JAN-WILLEM; JANSSEN, JOHAN GERARD WILLEM MARIA; PENNERS, MAURICE
To: NXP B.V.
Reel/Frame 022595/0257 →