IP Library Granted Patent US 8,423,721
Granted Patent B2
US 8,423,721 · App. 12/112,508 · Granted Apr 16, 2013

Cache coherency protocol in a data processing system

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,423,721
App. No.
12/112,508
Granted
Apr 16, 2013
Kind
B2
Abstract

A method includes detecting a bus transaction on a system interconnect of a data processing system having at least two masters; determining whether the bus transaction is one of a first type of bus transaction or a second type of bus transaction, where the determining is based upon a burst attribute of the bus transaction; performing a cache coherency operation for the bus transaction in response to the determining that the bus transaction is of the first type, where the performing the cache coherency operation includes searching at least one cache of the data processing system to determine whether the at least one cache contains data associated with a memory address the bus transaction; and not performing cache coherency operations for the bus transaction in response to the determining that the bus transaction is of the second type.

Claims (36)

1. A method of operating a data processing system, the method comprising:

detecting bus transactions on a system interconnect of a data processing system, the data processing system including at least two masters;

for each bus transaction detected on the system interconnect:

performing a cache coherency operation for the bus transaction in response to determining that the bus transaction is a single beat write transaction from any master of the at least two masters, wherein the performing the cache coherency operation includes searching at least one cache of the data processing system to determine whether the at least one cache contains data associated with a memory address of the bus transaction;

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a read transaction; and

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a multiple beat write transaction from any master of the at least two masters.

2. A method of operating a data processing system, the method comprising:

detecting bus transactions on a system interconnect of a data processing system, the data processing system including at least two masters;

for each bus transaction detected on the system interconnect:

performing a cache coherency operation for the bus transaction in response to determining that the bus transaction is a cacheable single beat write transaction, wherein the performing the cache coherency operation includes searching at least one cache of the data processing system to determine whether the at least one cache contains data associated with a memory address of the bus transaction;

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a read transaction; and

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a cacheable multiple beat write transaction by a any master of the at least two masters.

3. The method of claim 2 wherein, for each bus transaction on the system interconnect, the method further comprises not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a non cacheable write transaction.

4. The method of claim 1 , wherein:

the determining whether the bus transaction is a single beat write transaction from any master of the at least two masters, a read transaction, or multiple beat write transaction from any master of the at least two masters is performed by a cache coherency manager, wherein the cache coherency manager is operably coupled to the system interconnect;

the performing a cache coherency operation includes the cache coherency manager requesting to at least one cache of the data processing system that a cache coherency operation be performed in response to the determining that the bus transaction is a single beat write transaction from any master of the at least two masters, wherein control logic in each cache of the at least one cache performs the search of the each cache, wherein the cache coherency manager does not request any cache of the data processing system to perform a cache coherency operation for the bus transaction in response to the determining that the bus transaction is a read transaction or a multiple beat write transaction from any master of the at least two masters.

5. The method of claim 1 wherein the determining whether the bus transaction is a single beat write transaction from any master of the at least two masters or a multiple beat write transaction from any master of the at least two masters includes reading the value of a bus signal of the bus transaction and analyzing the value to determine a burst attribute.

6. A method of operating a data processing system, the method comprising:

detecting a bus transaction on a system interconnect of a data processing system by a cache coherency manager, the data processing system including at least two masters coupled to the system interconnect;

for each bus transaction detected on the system interconnect:

performing a cache coherency operation for the bus transaction when the bus transaction is determined to be a cacheable single beat write transaction from any master of the at least two masters, and performing a cache coherency operation when the bus transaction is determined to be a cacheable multiple bit write transaction by a specific master of the at least two masters, wherein performing the cache coherency operation includes the cache coherency manager requesting at least one cache of the data processing system to perform a search to determine whether the at least one cache contains data associated with a memory address of the bus transaction;

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a read transaction; and

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a multiple beat write transaction generated by a master of the at least two masters that is not the specific master, wherein the not performing cache coherency operations includes the cache coherency manager not requesting any cache of the data processing system to search to determine whether a cache contains data associated with the memory address of the bus transaction.

7. The method of claim 6 wherein:

the determining whether the bus transaction is a cacheable single beat write transaction from any master of the at least two masters, a cacheable multiple bit write transaction by the selected master of the at least two masters, a read transaction, or a multiple beat write transaction generated by the non-selected master of the at least two masters is performed by the cache coherency manager.

8. The method of claim 6 , wherein, for each bus transaction detected on the system interconnect, not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a non cacheable write transaction.

9. A method of operating a data processing system, the method comprising:

detecting bus transactions on a system interconnect of a data processing system, the data processing system including a plurality of masters;

for each bus transaction detected on the system interconnect:

performing a cache coherency operation for the bus transaction when the bus transaction is determined to be a multiple beat write transaction generated by a specific one of the plurality of masters and performing a cache coherency operation for the bus transaction when the bus transaction is determined to be a single beat write transaction from any master of the at least two masters, wherein performing the cache coherency operation includes searching at least one cache of the data processing system to determine whether the at least one cache contains data associated with a memory address of the bus transaction;

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a multiple beat write transaction generated by a master of the plurality of masters that is not the specific one of the plurality of masters; and

not performing cache coherency operations in any cache of the data processing system for the bus transaction in response to determining that the bus transaction is a read transaction.

10. The method of claim 9 , wherein the predetermined one of the plurality of masters is a DMA master.

11. The method of claim 9 , wherein:

the determining whether the bus transaction is a multiple beat write transaction generated by a specific one of the plurality of masters, a single beat write transaction from any master of the at least two masters, a multiple beat write transaction generated by a master of the plurality of masters that is not the specific one of the plurality of masters, or a read transaction is performed by a cache coherency manager, wherein the cache coherency manager is operably coupled to the system interconnect; and

the performing a cache coherency operation includes the cache coherency manager requesting to at least one cache of the data processing system that a cache coherency operation be performed in response to the determining that the bus transaction is one of a multiple beat write transaction generated by a specific one of the plurality of masters or a single beat write transaction from any master of the at least two masters, wherein control logic in each cache of the at least one cache performs the search of the each cache, wherein the cache coherency manager does not request any cache of the data processing system to perform a cache coherency operation for the bus transaction in response to the determining that the bus transaction is a multiple beat write transaction generated by a master of the plurality of masters that is not the specific one of the plurality of masters or a read transaction.

Assignments (18)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2023
From: NXP USA, INC.
To: EIREOG INNOVATIONS LIMITED
Reel/Frame 065880/0480 →
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 037356/0553 →
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 037354/0719 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →