IP Library Granted Patent US 7,502,893
Granted Patent B2
US 7,502,893 · App. 11/553,146 · Granted Mar 10, 2009

System and method for reporting cache coherency state retained within a cache hierarchy of a processing node

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,502,893
App. No.
11/553,146
Granted
Mar 10, 2009
Kind
B2
Abstract

A coherency state of a coherency granule is determined for each of a plurality of caches of a processor of a multiple-processor system to generate a plurality of coherency states in response to receiving a memory transaction request associated with the coherency granule at the processor. A coherency state of the coherency granule retained at the processor subsequent to the memory transaction request is determined based on the plurality of coherency states and an indicator representative of the coherency state of the coherency granule retained at the processor is provided for receipt by a cache coherency directory.

Claims (62)

1. A method comprising:

determining, at a first processor of a multiple-processor system, a coherency state of a coherency granule for each of a plurality of caches of the first processor to generate a first plurality of coherency states in response to receiving a memory transaction request associated with the coherency granule at the first processor;

determining, at the first processor, a first coherency state of the coherency granule based on the first plurality of coherency states, the first coherency state representative of a coherency state retained at the first processor subsequent to the memory transaction request; and

providing an indicator representative of the first coherency state for receipt by a cache coherency directory.

2. The method of claim 1 , further comprising:

updating the cache coherency directory based on the indicator of the first coherency state.

3. The method of claim 1 , wherein determining the coherency state of the coherency granule for each cache of the plurality of caches comprises:

snooping each cache of the plurality of caches to determine the coherency state of the coherency granule for the cache; and

storing an indicator of the coherency state of the coherency granule for each cache of the plurality of caches in a corresponding storage location.

4. The method of claim 1 , wherein determining the first coherency state comprises:

determining a select coherency state of the first plurality of coherency states having the most restrictive coherency state of the first plurality of coherency states; and

providing the select coherency state as the first coherency state.

5. The method of claim 4 , wherein each of a plurality of potential coherency states is associated with a distinct value corresponding to a relative restrictiveness of the coherency state.

6. The method of claim 1 , further comprising:

determining, at a second processor of the multiple-processor system, a coherency state of a coherency granule for each of a plurality of caches of the second processor to generate a second plurality of coherency states in response to receiving the memory transaction request;

determining a second coherency state of the coherency granule based on the second plurality of coherency states, the second coherency state representative of a coherency state retained at the second processor subsequent to the memory transaction request; and

providing an indicator of the second coherency state for receipt by the cache coherency directory.

7. The method of claim 1 , further comprising:

performing a cache action in response to receiving the memory transaction request; and

providing an indicator representative of a compliance with a coherency requirement of the memory transaction request for receipt by the cache coherency directory.

8. The method of claim 7 , further comprising:

updating the cache coherency directory based on the indicator representative of the compliance with the coherency requirement.

9. A method comprising:

receiving, at a first processor of a multiple-processor system, a memory transaction request associated with a coherency granule;

processing the memory transaction request at the first processor;

determining a compliance with a coherency requirement of the memory transaction request;

determining a first coherency state of the coherency granule, the first coherency state representative of a coherency state retained at the first processor subsequent to the memory transaction request; and

providing a first indicator representative of the compliance with the coherency requirement and a second indicator representative of the first coherency state for receipt by a cache coherency directory associated with the multiple-processor system.

10. The method of claim 9 , further comprising:

updating the cache coherency directory based on the first indicator and the second indicator.

11. The method of claim 9 , wherein determining the coherency state comprises:

snooping each cache of a plurality of caches of the first processor to determine the coherency state of the coherency granule for the cache;

determining a select coherency state having the most restrictive coherency state of the coherency states of the coherency granule for the plurality of caches; and

providing the select coherency state as the first coherency state.

12. The method of claim 11 , wherein each of a plurality of potential coherency states is associated with a distinct value corresponding to a relative restrictiveness of the coherency state and wherein determining the select coherency state having the most restrictive coherency state comprises selecting the select coherency state based on a value associated with each corresponding coherency state.

13. The method of claim 9 , further comprising:

receiving, at a second processor of the multiple-processor system, the memory transaction request;

processing the memory transaction request at the second processor;

determining a compliance with the coherency requirement of the memory transaction request for the second processor;

determining a second coherency state, the second coherency state representative of a coherency state of the coherency granule retained at the second processor subsequent to the memory transaction; and

providing a third indicator representative of the compliance with the coherency requirement for the second processor and a fourth indicator representative of the second coherency state for receipt by the cache coherency directory.

14. A system comprising:

a first processor comprising:

a port configured to couple to a transaction management module associated with a plurality of processors;

a processor core;

a plurality of caches; and

a coherency management module configured to provide a first indicator representative of a first coherency state, first coherency state representative of a coherency state of a coherency granule retained at the plurality of caches subsequent to a processing of a memory transaction request associated with the coherency granule.

15. The system of claim 14 , wherein the port is configured to receive the memory transaction request via the transaction management module.

16. The system of claim 14 , wherein the coherency management module is configured to:

snoop each cache of the plurality of caches to generate a plurality of coherency states; and

determine a select coherency state of the plurality of coherency states having the most restrictive coherency state of the plurality of coherency states, wherein the select coherency state represents a cache coherency state of the coherency granule retained by the first processor subsequent to the memory transaction.

17. The system of claim 14 , further comprising:

a cache coherency directory coupled to the transaction management module, wherein the cache coherency directory is configured to update coherency information for the coherency module based on the first indicator.

18. The system of claim 14 , wherein the coherency management module is configured to provide a second indicator representative of a compliance with a coherency requirement of the memory transaction request.

19. The system of claim 18 , further comprising:

a cache coherency directory having an input to receive the first indicator and the second indicator, and wherein the cache coherency directory is configured to update stored coherency information associated with the coherency granule for the multiple-processor system based on the first indicator and the second indicator.

20. The system of claim 14 , further comprising:

a second processor comprising:

a port configured to couple to the transaction management module;

a processor core;

a plurality of caches; and

a coherency management module configured to provide a second indicator representative of a second coherency state, the second coherency state representative of a coherency state of the coherency granule retained at the plurality of caches of the second processor subsequent to a processing of the memory transaction request.

Assignments (27)
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 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 →
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 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 →
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/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0793 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
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 May 19, 2009
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 022703/0405 →
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 Oct 27, 2006
From: DESHPANDE, SANJAY R.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 018444/0953 →