IP Library Granted Patent US 7,574,564
Granted Patent B2
US 7,574,564 · App. 11/382,903 · Granted Aug 11, 2009

Replacement pointer control for set associative cache and method

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 7,574,564
App. No.
11/382,903
Granted
Aug 11, 2009
Kind
B2
Abstract

A set associative cache includes a plurality of sets, where each set has a plurality of ways. The set associative cache has a plurality of replacement pointers where each set of the plurality of sets has a corresponding replacement pointer within the plurality of replacement pointers, and the corresponding replacement pointer indicates a way of the set. A cache command is provided which specifies a set of the plurality of sets and which specifies a replacement way value. In response to the cache command, a current way value of the replacement pointer corresponding to the specified set is replaced with the replacement way value. The cache may further include way locking control circuitry which indicates whether or not one or more ways is locked. By indicating a locked way with the replacement way value, a locked way can be overridden and thus be used for a subsequent cache line fill.

Claims (43)

1. A method, comprising:

providing a set associative cache having a plurality of sets, each of the plurality of sets having a plurality of ways, the set associative cache having a plurality of replacement pointers, each of the plurality of sets having a corresponding replacement pointer within the plurality of replacement pointers, the corresponding replacement pointer indicating a way of a corresponding set;

providing a cache command which identifies a specified set of the plurality of sets and which identifies a replacement way value;

in response to the cache command, replacing a current way value of the replacement pointer corresponding to the specified set with the replacement way value, the replacement way value indicating a different way of the specified set than the current way value;

in response to a desired data value missing from a corresponding set of the cache, performing a cache line fill of a way of the corresponding set indicated by a corresponding replacement pointer; and

after performing the cache line fill, locking the way of the corresponding set indicated by the corresponding replacement pointer.

2. The method of claim 1 , wherein the cache command is provided from values stored in a control register.

3. The method of claim 2 , wherein the control register is software accessible.

4. The method of claim 1 , wherein replacing the current way value of the replacement pointer in response to the cache command is performed without affecting cache lines of the specified set of the plurality of sets.

5. The method of claim 1 , wherein replacing the current way value of the replacement pointer in response to the cache command is performed without affecting the plurality of replacement pointers corresponding to sets other than the specified set of the plurality of sets.

6. The method of claim 1 , further comprising:

using a cache command function field of the cache command and implementing one of: (1) invalidating data without flushing the data; (2) flushing data if the data is dirty and is valid, the flushing being done without invalidating the data; (3) flushing data if the data is dirty and is valid, the data being invalidated after the flushing; or (4) resetting the corresponding replacement pointer to the specific cache way identified in the first field.

7. The method of claim 1 , wherein the set associative cache has way locking control circuitry which indicates whether or not one or more ways of the set associative cache is locked.

8. The method of claim 1 , wherein the replacement way value indicates a locked way.

9. The method of claim 1 , further comprising:

after replacing the current way value of the replacement pointer corresponding to the specified set with the replacement way value, performing a cache line fill of a way of the specified set indicated by the replacement way value.

10. A method, comprising:

providing a set associative cache comprising:

a plurality of sets, each set of the plurality of sets having a plurality of ways;

a plurality of replacement pointers, each set of the plurality of sets having a corresponding replacement pointer within the plurality of replacement pointers, the corresponding replacement pointer indicating a way of the set; and

way locking control circuitry which indicates whether or not one or more ways are locked;

providing a cache command which specifies a set of the plurality of sets to identify a specified set and which specifies a replacement way value, wherein the way locking control circuitry indicates that a way indicated by the replacement way value is a locked way; and

in response to the cache command, replacing a current way value of the replacement pointer corresponding to the specified set with the replacement way value which indicates the locked way;

after the replacing the current way value of the replacement pointer corresponding to the specified set with the replacement way value, in response to a desired data value missing from a corresponding set of the cache, performing a cache line fill of a way of the corresponding set indicated by a corresponding replacement pointer; and

after performing the cache line fill, locking the way of the corresponding set indicated by the corresponding replacement pointer.

11. The method of claim 10 , further comprising:

using a cache command function field of the cache command and implementing one of: (1) invalidating data without flushing the data; (2) flushing data if the data is dirty and is valid, the flushing being done without invalidating the data; (3) flushing data if the data is dirty and is valid, the data being invalidated after the flushing; or (4) resetting the corresponding replacement pointer to the specific cache way identified in the first field.

12. The method of claim 10 , wherein the cache command is provided from values stored in a software accessible control register.

13. A data processing system, comprising:

a processor; and

a set associative cache coupled to the processor, the set associative cache comprising:

a plurality of sets, each set of the plurality of sets having a plurality of ways;

a plurality of replacement pointers, each set of the plurality of sets having a corresponding replacement pointer within the plurality of replacement pointers, the corresponding replacement pointer indicating a way of that set;

control circuitry coupled to the plurality of replacement pointers, the control circuitry, in response to a cache command specifying a set of the plurality of sets to identify a specified set and specifying a replacement way value, replaces a current way value of the replacement pointer corresponding to the specified set with the replacement way value; and

a way locking control register which indicates whether or not one or more ways are locked, the replacement way value indicating a locked way and the locked way indicated by the way locking control register, and the control circuitry, in response to a processor memory access instruction missing in the set associative cache, performs a cache line fill into the locked way.

14. The data processing system of claim 13 , wherein the control circuitry comprises a way replacement pointer control register, the way replacement pointer control register storing the cache command.

15. The data processing system of claim 14 , wherein the way replacement pointer control register is accessible by software executing on the processor.

16. The data processing system of claim 13 , wherein the control circuitry replaces the current way value of the replacement pointer corresponding to the specified set in response to the cache command without affecting cache lines of the specified set.

17. The data processing system of claim 13 , wherein the control circuit replaces the current way value of the replacement pointer corresponding to the specified set in response to the cache command without affecting the plurality of replacement pointers corresponding to sets other than the specified set.

18. The data processing system of claim 13 , wherein the

cache command comprises three fields, a first field identifying a specific cache way, a second field identifying a specific cache set and a third field identifying a cache command function.

19. The data processing system of claim 18 , wherein the cache command function is one of: (1) invalidating data without flushing the data; (2) flushing data if the data is dirty and is valid, the flushing being done without invalidating the data; (3) flushing data if the data is dirty and is valid, the data being invalidated after the flushing; or (4) reset the corresponding replacement pointer to the specific cache way identified in the first field.

20. The data processing system of claim 19 , wherein the processor and the set associative cache are implemented on an integrated circuit and are coupled to a system memory and one or more other system modules that are external to the integrated circuit.

Assignments (22)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
323.01(C) ASSIGNMENT OR CHANGE OF NAME IMPROPERLY FILED AND RECORDED BY ANOTHER PERSON AGAINST OWNER'S PATENT Recorded Oct 3, 2019
From: TAIWAN SEMICONDUCTOR MANUFACTURING CO., LTD.
To: TAIWAN SEMICONDUCTOR MANUFACTURING CO., LTD.
Reel/Frame 052459/0656 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2017
From: NORTH STAR INNOVATIONS INC.
To: TAIWAN SEMICONDUCTOR MANUFACTURING CO., LTD.
Reel/Frame 041717/0736 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NORTH STAR INNOVATIONS INC.
Reel/Frame 037694/0264 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0854 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Feb 3, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 023882/0834 →
SECURITY AGREEMENT Recorded Feb 2, 2007
From: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 018855/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2006
From: MOYER, WILLIAM C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 017615/0290 →