IP Library Granted Patent US 8,706,974
Granted Patent B2
US 8,706,974 · App. 12/112,796 · Granted Apr 22, 2014

Snoop request management in a data processing system

Inventor: William C. Moyer (Dripping Springs, TX)
Assignee: Freescale Semiconductor, Inc.
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,706,974
App. No.
12/112,796
Granted
Apr 22, 2014
Kind
B2
Abstract

In a data processing system, a method includes a first master initiating a transaction via a system interconnect to a target device. After initiating the transaction, a snoop request corresponding to the transaction is provided to a cache of a second master. The transaction is completed. After completing the transaction, a snoop lookup operation corresponding to the snoop request in the cache of the second master is performed. The transaction may be completed prior to or after providing the snoop request. In response to performing the snoop lookup operation, a snoop response may be provided, where the snoop response is provided after completing the transaction. When the snoop response indicates an error, a snoop error may be provided to the first master.

Claims (48)

1. A data processing system, comprising:

a system interconnect;

a first master communicatively coupled to initiate a transaction on the system interconnect, the transaction having a corresponding access address;

a cache coherency manager communicatively coupled to the system interconnect; and

a second master, the second master comprising:

a cache; and

snoop circuitry which receives snoop requests from the cache coherency manager, wherein a snoop lookup in the cache is performed for received snoop requests, and, in response to each snoop lookup, a snoop response is provided to the cache coherency manager,

wherein when the cache coherency manager provides a snoop request corresponding to the transaction initiated by the first master to the snoop circuitry of the second master, the snoop circuitry is configured to be capable of performing a snoop lookup operation for the snoop request corresponding to the transaction initiated by the first master after completion of the transaction initiated by the first master on the system interconnect, and wherein a second transaction subsequent to the transaction can be initiated on the system interconnect prior to the completion of the snoop lookup;

the cache coherency manager is communicatively coupled to the system interconnect to snoop transactions on the system interconnect, the cache coherency manager provides a snoop request to the snoop circuitry responsive to a snooped transaction on the system interconnect.

2. The data processing system of claim 1 , wherein the snoop circuitry comprises a snoop request queue for storing the snoop requests received from the cache coherency manager.

3. The data processing system of claim 1 , wherein when a snoop response provided by the snoop circuitry to the cache coherency manager in response to performing the snoop lookup operation for the snoop request corresponding to the transaction initiated by the first master indicates an error, the cache coherency manager provides a snoop error indicator to the first master.

4. The data processing system of claim 1 , wherein the cache coherency manager comprises a snoop identifier generator which generates a snoop identifier for each snoop request provided to the snoop circuitry, wherein when the cache coherency manager provides the snoop request corresponding to the transaction initiated by the first master to the snoop circuitry of the second master, the cache coherency manager also provides a corresponding snoop identifier, the corresponding snoop identifier comprises a first value corresponding to the first master and a second value generated by the cache coherency manager.

5. The data processing system of claim 1 , wherein when a snoop response provided to the cache coherency manager in response to the snoop lookup operation for the snoop request corresponding to the transaction initiated by the first master, the corresponding snoop identifier is also provided to the cache coherency manager.

6. The data processing system of claim 1 wherein the cache is characterized as one of a group consisting of a data cache, an instruction cache, and a data and instruction cache.

7. In a data processing system, a method comprising:

a first master initiating a transaction via a system interconnect to a target device;

snooping the transaction on the system interconnect by a cache coherency manager, wherein responsive to the snooped transaction, the cache coherency manager provides a snoop request corresponding to the transaction to a cache of a second master, wherein the cache is characterized as one of a group consisting of a data cache, an instruction cache, and a data and instruction cache;

completing the transaction;

after the completing, performing a snoop lookup operation corresponding to the snoop request in the cache of the second master.

8. The method of claim 7 , wherein the completing the transaction is performed prior to the providing the snoop request.

9. The method of claim 7 , wherein the providing the snoop request comprises:

providing a snoop address corresponding to an access address of the transaction.

10. The method of claim 9 , wherein the providing the snoop request comprises:

storing the snoop address in an entry of a snoop queue, the snoop queue communicatively coupled to provide snoop requests to the cache.

11. The method of claim 9 , wherein providing the snoop request further comprises:

providing a snoop request identifier with the snoop address.

12. The method of claim 11 , wherein the providing the snoop request further comprises storing the snoop address and the snoop request identifier in an entry of a snoop queue, the snoop queue communicatively coupled to provide snoop requests to the cache.

13. The method of claim 7 , further comprising:

after the performing the snoop lookup operation, providing a snoop response which indicates a status of the snoop lookup operation.

14. The method of claim 13 , wherein the snoop response includes a snoop request identifier which identifies the snoop request corresponding to the snoop response.

15. The method of claim 13 , wherein when the status of the snoop lookup operation indicates an error occurred, providing a snoop error response to the first master.

16. The method of claim 7 , further comprising:

after the completing the transaction and prior to the performing the snoop lookup operation, the first master initiating a second transaction via the system interconnect to the target device.

17. In a data processing system, a method comprising:

a first master initiating a transaction via a system interconnect to a target device;

snooping the transaction on the system interconnect by a cache coherency manager, wherein responsive to the snooped transaction, the cache coherency manager provides a snoop request corresponding to the transaction to a cache of the data processing system, wherein the cache is characterized as one of a group consisting of a data cache, an instruction cache, and a data and instruction cache;

completing the transaction;

performing a snoop lookup operation corresponding to the snoop request in the cache; and

in response to the performing the snoop lookup operation, providing a snoop response to the cache coherency manager, wherein the providing the snoop response is performed after the completing the transaction.

18. The method of claim 17 , wherein the performing the snoop lookup operation is performed after the completing the transaction.

19. The method of claim 17 , wherein the cache coherency manager providing the snoop request is performed after the completing the transaction.

20. The method of claim 17 , further comprising:

storing the snoop request provided by the cache coherency manager in a snoop request queue communicatively coupled to provide snoop requests to the cache, wherein the snoop request comprises a snoop address corresponding to an access address of the transaction and a snoop identifier which includes a master identifier which identifies the first master.

21. The method of claim 17 , further comprising:

when the snoop response indicates an error, the cache coherency manager providing a snoop error to the first master.

22. The method of claim 17 further comprising:

initiating a second transaction via a system interconnect to a target device after completing the transaction;

completing the second transaction, wherein the completing the second transaction is performed before the providing a snoop response to the cache coherency manager.

Assignments (21)
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 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
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 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/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 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
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/0719 →
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 037356/0143 →
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 Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
SECURITY AGREEMENT Recorded Sep 24, 2008
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 021570/0449 →
Continuity (1)
Related Publication 20090276580A1 · Nov 5, 2009