IP Library Granted Patent US 9,208,091
Granted Patent B2
US 9,208,091 · App. 13/921,844 · Granted Dec 8, 2015

Coherent attached processor proxy having hybrid directory

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,208,091
App. No.
13/921,844
Granted
Dec 8, 2015
Kind
B2
Abstract

A coherent attached processor proxy (CAPP) includes transport logic having a first interface configured to support communication with a system fabric of a primary coherent system and a second interface configured to support communication with an attached processor (AP) that is external to the primary coherent system and that includes a cache memory that holds copies of memory blocks belonging to a coherent address space of the primary coherent system. The CAPP further includes one or more master machines that initiate memory access requests on the system fabric of the primary coherent system on behalf of the AP, one or more snoop machines that service requests snooped on the system fabric, and a CAPP directory having a precise directory having a plurality of entries each associated with a smaller data granule and a coarse directory having a plurality of entries each associated with a larger data granule.

Claims (41)

1. A coherent attached processor proxy (CAPP), comprising:

transport logic having a first interface configured to support communication with a system fabric of a primary coherent system and a second interface configured to support communication with an attached processor (AP) that is external to the primary coherent system and that includes a cache memory that holds copies of memory blocks belonging to a coherent address space of the primary coherent system;

operation handling logic including:

a CAPP directory of cachelines of interest to the AP, wherein the CAPP directory includes:

a precise directory having a plurality of entries each associated with a respective one of a plurality of smaller data granules; and

a coarse directory having a plurality of entries each associated with a respective one of a plurality of larger data granules;

one or more master machines that initiate memory access requests on the system fabric of the primary coherent system on behalf of the AP; and

one or more snoop machines that service requests snooped on the system fabric.

2. The coherent attached processor proxy (CAPP) of claim 1 , wherein:

the smaller data granule comprises a single cacheline of data; and

the larger data granule comprises a plurality of contiguous cachelines.

3. The coherent attached processor proxy (CAPP) of claim 1 , wherein the CAPP installs an entry in the coarse directory in a data-valid coherence state in advance of receipt of all of the larger data granule by the AP.

4. The coherent attached processor proxy (CAPP) of claim 1 , wherein the CAPP determines a composite coherence state for a target address by prioritizing a coherence state indicated by the precise directory over a coherence state indicated by the coarse directory.

5. The coherent attached processor proxy (CAPP) of claim 1 , wherein the CAPP, responsive to a target address of a snooped memory access request missing in the precise directory and hitting in the coarse directory, provides a Retry response and installs an entry corresponding to the target address in the precise directory.

6. The coherent attached processor proxy (CAPP) of claim 1 , wherein the CAPP, responsive to at least one AP command, decomposes an entry in the coarse directory into a plurality of entries in the precise directory.

7. A processing unit, comprising:

at least one processor core;

a cache coupled to the processor core; and

a coherent attached processor proxy (CAPP) in accordance with claim 1 .

8. A data processing system, comprising:

a primary coherent system including:

a system fabric;

a plurality of processing units coupled to the system fabric for communication therebetween, wherein a processing unit among the plurality of processing units includes:

at least one processor core;

a cache coupled to the processor core; and

a coherent attached processor proxy (CAPP), including:

transport logic having a first interface configured to support communication with a system fabric of a primary coherent system and a second interface configured to support communication with an attached processor (AP) that is external to the primary coherent system and that includes a cache memory that holds copies of memory blocks belonging to a coherent address space of the primary coherent system;

operation handling logic including:

 a CAPP directory of cachelines of interest to the AP, wherein the CAPP directory includes:

 a precise directory having a plurality of entries each associated with a respective one of a plurality of smaller data granules; and

 a coarse directory having a plurality of entries each associated with a respective one of a plurality of larger data granules;

 one or more master machines that initiate memory access requests on the system fabric of the primary coherent system on behalf of the AP; and

 one or more snoop machines that service requests snooped on the system fabric.

9. The data processing system of claim 8 , wherein:

the smaller data granule comprises a single cacheline of data; and

the larger data granule comprises a plurality of contiguous cachelines.

10. The data processing system of claim 8 , wherein the CAPP installs an entry in the coarse directory in a data-valid coherence state in advance of receipt of all of the larger data granule by the AP.

11. The data processing system of claim 8 , wherein the CAPP determines a composite coherence state for a target address by prioritizing a coherence state indicated by the precise directory over a coherence state indicated by the coarse directory.

12. The data processing system of claim 8 , wherein the CAPP, responsive to a target address of a snooped memory access request missing in the precise directory and hitting in the coarse directory, provides a Retry response and installs an entry corresponding to the target address in the precise directory.

13. The data processing system of claim 8 , wherein the CAPP, responsive to at least one AP command, decomposes an entry in the coarse directory into a plurality of entries in the precise directory.

14. The data processing system of claim 8 , and further comprising the AP.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED AT REEL: 036328 FRAME: 0809. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGMENT. Recorded Oct 21, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S.2 LLC
Reel/Frame 036920/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC COMPANY
Reel/Frame 036328/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2013
From: BLANER, BARTHOLOMEW; SIEGEL, MICHAEL S.; STUECHELI, JEFFREY A.; MARINO, CHARLES F.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030645/0451 →