IP Library Granted Patent US 9,632,933
Granted Patent B2
US 9,632,933 · App. 14/612,861 · Granted Apr 25, 2017

Efficient coherency response mechanism

Inventors: Sanjay R. Deshpande (Austin, TX); John E. Larson (Round Rock, TX); Fernando A. Morales (Austin, TX); Thang Q. Nguyen (Austin, TX)
Assignee: NXP USA, Inc.
G06F12/0815G06F12/0813G06F12/0831G06F2212/1016G06F2212/1048G06F2212/154G06F2212/621
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 9,632,933
App. No.
14/612,861
Granted
Apr 25, 2017
Kind
B2
Abstract

A plurality of processing units are interconnected by a coherency network in accordance with a directed spanning tree. Each processing unit that is a leaf of the directed spanning tree includes processing circuitry to provide a coherency response in response to a snoop request. Each processing unit which is not a root or leaf of the directed spanning tree includes switch point circuitry having one or more ingress ports coupled to neighboring processing units in accordance with the directed spanning tree. The switch point circuitry includes a coherency tracking table configured to store a combined coherency response in response to a particular snoop request based on one or more coherency responses received at the one or more ingress ports from the neighboring processing units.

Claims (47)

1. A data processing system, comprising:

a plurality of processing units interconnected by a coherency network in accordance with a directed spanning tree in which the plurality of processing units comprises a first processing unit characterized as a root of the directed spanning tree, a first set of processing units each characterized as a leaf of the directed spanning tree, and a remaining set of processing units, exclusive of the first processing unit and first set of processing units, wherein

each processing unit of the first set comprises:

processing circuitry configured to provide a coherency response in response to a snoop request, and

each processing unit of the remaining set comprises:

switch point circuitry comprising:

one or more ingress ports coupled to neighboring processing units in accordance with the directed spanning tree,

a coherency tracking table configured to store a combined coherency response in response to a particular snoop request based on one or more coherency responses received at the one or more ingress ports from the neighboring processing units,

an egress port toward the first processing unit characterized as the root of the directed spanning tree, wherein the egress port is coupled to the coherency network, and

coherency logic configured to provide the combined coherency response for the particular snoop request on the egress port when a corresponding coherency response for the particular snoop request has been received from every one of the neighboring processing units in accordance with the directed spanning tree.

2. The data processing system of claim 1 , wherein the one or more coherency responses received at the one or more ingress ports are provided in response to the particular snoop request and the one or more coherency responses are used to form the combined coherency response.

3. The data processing system of claim 1 , wherein the one or more coherency responses are received at different times.

4. The data processing system of claim 1 , wherein the coherency tracking table of each switch point circuitry in the remaining set of processing units comprises:

a plurality of entries, each entry is associated with a corresponding snoop request and is configured to store:

a bit field associated with a corresponding ingress port of the one or more ingress ports to indicate whether a corresponding coherency response has been received for the corresponding snoop request on the corresponding ingress port, and

a combined coherency response field that is updated when a new coherency response is received at the one or more ingress ports for the corresponding snoop request.

5. The data processing system of claim 4 , wherein the plurality of entries are ordered in accordance with an order in which the corresponding snoop requests were issued.

6. The data processing system of claim 1 , wherein the egress port is coupled to an immediately adjacent processing unit in the coherency network, exclusive of the first set of processing units.

7. The data processing system of claim 1 , wherein the one or more coherency responses comprises at least one or more of: a received combined coherency response from a neighboring one of the remaining set of processing units in accordance with the directed spanning tree, and a received coherency response from a neighboring one of the first set of processing units in accordance with the directed spanning tree.

8. The data processing system of claim 1 , further comprising:

a second plurality of processing units interconnected by a second coherency network in accordance with a second directed spanning tree that is different from the first directed spanning tree, wherein the first plurality of processing units and the second plurality of processing units include an overlapping set of processing units.

9. The data processing system of claim 8 , wherein each processing unit of the overlapping set of processing units comprises switch point circuitry including:

a first coherency tracking table configured to store combined coherency responses in response to corresponding snoop requests communicated on the coherency network; and

a second coherency tracking table configured to store combined coherency responses in response to corresponding snoop requests communicated on the second coherency network.

10. The data processing system of claim 9 , wherein the switch point circuitry in each processing unit of the overlapping set of processing units includes a first set of ingress ports coupled to the coherency network and a second set of ingress ports coupled to the second coherency network.

11. A data processing system, comprising:

a coherency network;

an ordering point processing unit; and

a plurality of processing units, wherein the ordering point processing unit and the plurality of processing units are interconnected by the coherency network, wherein the plurality of processing units comprises a set of trunk processing units, wherein

each of the set of trunk processing units comprises:

switch point circuitry comprising:

one or more ingress ports coupled to the coherency network,

a coherency tracking table configured to store a combined coherency response in response to a particular snoop request based on one or more coherency responses received at the one or more ingress ports,

an egress port toward the ordering point processing unit, wherein the egress port is coupled to the coherency network, and

coherency logic configured to provide the combined coherency response for the particular snoop request on the egress port when a corresponding coherency response for the particular snoop request has been received from every one of the one or more ingress ports.

12. The data processing system of claim 11 , wherein the one or more coherency responses received at the one or more ingress ports are provided in response to the particular snoop request and the one or more coherency responses are used to form the combined coherency response.

13. The data processing system of claim 11 , wherein the one or more coherency responses are received at different times.

14. The data processing system of claim 11 , wherein the coherency tracking table of each switch point circuitry in the plurality of processing units comprises:

a plurality of entries, each entry is associated with a corresponding snoop request and is configured to store:

a bit field associated with a corresponding ingress port of the one or more ingress ports to indicate whether a corresponding coherency response has been received for the corresponding snoop request on the corresponding ingress port, and

a combined coherency response field that is updated when a new coherency response is received at the one or more ingress ports for the corresponding snoop request.

15. The data processing system of claim 14 , wherein the plurality of entries are ordered in accordance with an order in which the corresponding snoop requests were issued by the ordering point processing unit.

16. In a data processing system having multiple processing units interconnected via a coherency network in accordance with a directed spanning tree, a method comprising:

receiving, at a processing unit from each of one or more ingress neighboring processing units in accordance with the directed spanning tree, a corresponding coherency response responsive to a first snoop request;

updating a first entry corresponding to the first snoop request in a coherency tracking table of the processing unit, wherein the updating comprises accumulating each corresponding coherency response into a combined coherency response stored within the first entry; and

providing to an egress neighboring processing unit in accordance with the directed spanning tree the combined coherency response from the first entry, wherein the providing is performed after each corresponding coherency response to the first snoop request has been received from all of the one or more ingress neighboring processing units and accumulated into the combined coherency response of the first entry.

17. The method of claim 16 , wherein a first coherency response of the corresponding coherency responses received at the processing unit is a combined coherency response for the first snoop request comprising accumulated coherency responses received at a first ingress neighboring processing unit of the one or more ingress neighboring processing units, wherein the accumulated coherency responses were received from another set of one or more ingress neighboring processing units of the first ingress neighboring processing unit in accordance with the directed spanning tree.

Assignments (15)
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 →
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 NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
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 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0359 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0341 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0974 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0095 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0112 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0080 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2015
From: DESHPANDE, SANJAY R.; LARSON, JOHN E.; MORALES, FERNANDO A.; NGUYEN, THANG Q.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 034877/0706 →
Continuity (1)
Related Publication 20160224468A1 · Aug 4, 2016