IP Library Granted Patent US 7,827,360
Granted Patent B2
US 7,827,360 · App. 11/832,797 · Granted Nov 2, 2010

Cache locking device and methods thereof

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,827,360
App. No.
11/832,797
Granted
Nov 2, 2010
Kind
B2
Abstract

A method and device for locking a cache line of a cache is disclosed. The method includes automatically changing a state of a cache line from a valid locked state to an invalid locked state in response to receiving an indication that a memory location external to the cache and corresponding to the cache line is associated with an access request by a processor or other data access module. Thus, the locked state of a cache line is maintained even after data in the locked cache line is invalidated. By maintaining the invalid locked state, the cache line is not available for reallocation by the cache. This allows locked cache lines that become invalidated to remain locked without additional software overhead to periodically determine whether the lock has been lost due to invalidation of the cache line.

Claims (32)

1. A method, comprising:

receiving a first indication while a cache line at a cache is in a first state that a first memory location external to the cache corresponding to the cache line is associated with an access request, the first state indicating that the cache line is valid and locked; and

in response to receiving the first indication, automatically changing the state of the cache line from the first state to a second state indicating that the data at the cache line is invalid and locked, the cache line unavailable for allocation to a second memory location when the cache line is invalid and locked.

2. The method of claim 1 , further comprising in response to execution of a first instruction at a first processor, changing the state of the cache line from a third state indicating data at the cache line is valid and unlocked to the first state.

3. The method of claim 2 , wherein the first indication is received in response to execution of a second instruction at a second processor.

4. The method of claim 1 , wherein the first state further indicates that the data external to the cache has been modified.

5. The method of claim 1 , wherein the first indication is received in response to execution of a first instruction at a first processor.

6. The method of claim 1 , wherein the second state further indicates that the data is shared.

7. The method of claim 1 , wherein the second state further indicates that the data has been modified.

8. The method of claim 1 , further comprising automatically changing the state of the cache line from the second state back to the first state in response to execution of a second instruction at the first processor.

9. The method of claim 8 , wherein the second instruction is a store instruction.

10. The method of claim 1 , wherein automatically changing the state of the cache line from the first state to a the second state further comprises change the state of the cache line based on the state of a mode bit.

11. The method of claim 1 , further comprising automatically changing the state of the cache line from the second state to a third state in response to execution of a first instruction at the first processor, the third state indicating the cache line is invalid and unlocked.

12. The method of claim 11 , further comprising automatically changing the state of the cache line from the third state to the second state in response to execution of a second instruction at the first processor.

13. The method of claim 11 , further comprising automatically changing the state of the cache line from the third state to the first state in response to execution of a second instruction at the first processor.

14. The method of claim 1 , further comprising:

receiving an address associated with a store access at the cache;

receiving data associated with the store access; and

in response to determining that the cache line is in the second state and that the cache line is associated with the address, storing the data at the first cache line.

15. The method of claim 14 , further comprising in response to determining that the cache does not include any cache line associated with the address, determining an available cache line and storing the data at the available cache line.

16. The method of claim 15 , wherein determining an available cache line comprises determining that the cache line is not available in response to determining that the cache line is in the second state.

17. A device, comprising:

a processor;

a cache coupled to the processor, the cache comprising:

a data array configured to store a cache line;

a status module configured to store state information associated with the cache line;

an array control module coupled to the status module, the array control module configured to change the state information to a first state indicating the cache line is valid and locked in response to execution of a lock instruction at the processor, and configured to automatically change the state information to a second state from the first state, in response to receiving an indication that a first data location external to the cache and corresponding to the cache line is associated with an access request, the second state indicating that the data at the cache line is invalid and locked, the cache line unavailable for allocation to a second data location when the cache line is invalid and locked.

18. The device of claim 17 , wherein the array control module is configured to automatically change the state information from the second state to the first state in response to execution of a second instruction at the processor.

19. The device of claim 17 , wherein the array control module is configured to automatically change the state information from the second state to a third state indicating the cache line is invalid and unlocked in response to execution of a second instruction at the processor.

20. A method, comprising:

receiving a first indication while a cache line at a cache is in a first state that a first memory location external to the cache corresponding to the cache line is associated with an access request, the first state indicating that the cache line is valid and locked;

in response to receiving the first indication, automatically changing the state of the cache line based on a mode bit from the first state to a second state indicating that the data at the cache line is invalid and locked.

Assignments (26)
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 →
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 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 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 →
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 →
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 →
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 →
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 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/0704 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2015
From: ZENITH INVESTMENTS, LLC
To: APPLE INC.
Reel/Frame 034749/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: ZENITH INVESTMENTS, LLC
Reel/Frame 033687/0336 →
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 Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
SECURITY AGREEMENT Recorded Feb 16, 2008
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 020518/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2007
From: RAHMAN, SYED R.; GREENBERG, DAVID F.; STACER, KATHRYN C.; BRUCE, KLAS M.; SMITTLE, MATT B.; SNYDER, MICHAEL D.; WHISENHUNT, GARY L.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 019638/0102 →