# US 12,111,775 B2 · Memory hub providing cache coherency protocol system method for multiple processor sockets comprising multiple XPUs

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,111,775 B2
- Document ID: US12111775B2
- Status: Granted
- Kind: B2
- Application number: 17/212,722
- Filed: 2021-03-25
- Published: 2021-07-08
- Granted: 2024-10-08
- Earliest claimed: 2020-12-26
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Duane E. Galbi; Matthew J. Adiletta; Hugh Wilkinson; Patrick Connor
- Web page: https://patentgrep.com/patent/US12111775B2

## CPC

- G06F 13/1621: {by maintaining request order}
- G06F 12/0831: using a bus scheme, e.g. with bus monitoring or watching means
- G06F 13/1657: {Access to multiple memories}
- G06F 13/1668: {Details of memory controller}
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 13/409: {Mechanical coupling (back panels H05K7/1438)}
- G06F 13/4221: {being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus}
- G06F 12/084: with a shared cache
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Examples described herein relate to an apparatus that includes at least two processing units and a memory hub coupled to the at least two processing units. In some examples, the memory hub includes a home agent. In some examples, the memory hub is to perform a memory access request involving a memory device, a first processing unit among the at least two processing units is to send the memory access request to the memory hub. In some examples, the first processing unit is to offload at least some but not all home agent operations to the home agent of the memory hub. In some examples, the first processing unit comprises a second home agent and wherein the second home agent is to perform the at least some but not all home agent operations before the offload of at least some but not all home agent operations to the home agent of the memory hub. In some examples, based on provision of the at least some but not all home agent operations to be performed by the second home agent, the second home agent is to perform the at least some but not all home agent operations.

## Claims

### Claim 1

An apparatus comprising:
at least two processing units comprising at least two processor sockets and
a memory hub coupled to the at least two processing units, the memory hub comprising a home agent, wherein:
the home agent of the memory hub is to maintain cache coherency among the at least two processing units,
the cache coherency among the at least two processing units comprises access a copy of modified content of a cache line,
the at least two processor sockets comprise at least two central processing units (CPUs),
the at least two CPUs comprise cores, and
to perform a memory access request involving a memory device, a first processing unit among the at least two processing units is to send the memory access request to the memory hub.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein:
the first processing unit is to offload at least some but not all home agent operations to the home agent of the memory hub.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein:
the first processing unit comprises a second home agent and wherein the second home agent is to perform the at least some but not all home agent operations before the offload of at least some but not all home agent operations to the home agent of the memory hub and
based on provision of the at least some but not all home agent operations to be performed by the second home agent, the second home agent is to perform the at least some but not all home agent operations.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the memory hub comprises a memory cache and wherein if the memory access request comprises a data read request and the memory cache includes requested data, the memory hub is to provide the requested data from the memory cache to the first processing unit.

### Claim 5 (depends on 1)

The apparatus of claim 1, comprising:
a connector between at least one processing unit of the at least two processing units and the memory hub, wherein the connector comprises one or more of: a board trace, an electrical link, an optical link, or a coaxial cable and wherein the connector comprises a parallel connection or at least one serial lane.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein:
data access times by the first processing unit and a second processing unit among the at least two processing units from a memory device via the memory hub are approximately uniform.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein:
the memory hub is to manage a coherent memory domain for access by two or more processing units among the at least two processing units from one or more memory devices.

### Claim 8 (depends on 1)

The apparatus of claim 1, comprising a server, wherein the server comprises the at least two processing units, wherein a processing unit among the at least two processing units is to execute an application or microservice that causes issuance of the memory access request to the memory hub.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein one or more of the at least two processing units comprises one or more of: an XPU, and/or an input/output interface.

### Claim 10 (depends on 1)

The apparatus of claim 1, comprising a second memory hub coupled to the at least two processing units, the second memory hub comprising a home agent, wherein:
the second memory hub is to perform a second memory access request from a processing unit among the at least two processing units, the second memory access request associated with a memory device coupled to the second memory hub.

### Claim 11 (depends on 1)

The apparatus of claim 1, wherein:
the first processing unit is to manage permission to access one or more memory regions of one or more memory devices and
the first processing unit is to delegate the management of permission to access the one or more memory regions of the one or more memory devices to the memory hub.

### Claim 12 (depends on 11)

The apparatus of claim 11, comprising a second memory hub, wherein:
the memory hub is to delegate management of permission to access the one or memory regions of the one or more memory devices to the second memory hub.

### Claim 13

A method comprising:
a memory hub providing multiple processor sockets with approximately uniform access times to multiple memory devices independent from increasing a number of memory channels at a processor socket to the multiple memory devices, wherein:
the memory hub comprises a home agent to maintain cache coherency among the multiple processor sockets,
the cache coherency among the multiple processor sockets comprises access a copy of modified content of a cache line,
the multiple processor sockets comprise multiple XPUs, and
the multiple XPUs comprise multiple cores.

### Claim 14 (depends on 13)

The method of claim 13, comprising:
the multiple processor sockets accessing a memory device by providing memory access requests to the memory hub.

### Claim 15 (depends on 13)

The method of claim 13, comprising:
a processor socket among the multiple processor sockets offloading data consistency determination to the memory hub.

### Claim 16 (depends on 13)

The method of claim 13, comprising:
managing, by the memory hub, a coherent memory domain for access by the multiple processor sockets from one or more memory devices among the multiple memory devices.

### Claim 17

At least one non-transitory computer-readable medium, comprising instructions stored thereon, that if executed by one or more processors, cause the one or more processors to:
cause multiple processor sockets to send memory access requests to a memory hub, wherein
the memory hub provides the multiple processor sockets with approximately uniform access times to one or more memory devices,
the memory hub comprises a home agent to maintain cache coherency among the multiple processor sockets,
the cache coherency among the multiple processor sockets comprises access a copy of modified content of a cache line,
the multiple processor sockets comprise multiple XPUs, and
the multiple XPUs comprise multiple cores.

### Claim 18 (depends on 17)

The computer-readable medium of claim 17, wherein:
the memory hub is to provide a quality of service for memory access requests from the multiple processor sockets based on priority of a requester processor socket.

### Claim 19

A system comprising:
a first central processing unit (CPU) socket;
a second CPU socket;
a first memory hub comprising a first home agent; and
a second memory hub comprising a second home agent, wherein:
the first home agent of the first memory hub is to maintain cache coherency among the first and second CPU sockets,
the cache coherency among the first and second CPU sockets comprises access a copy of modified content of a cache line,
the first and second CPU sockets comprise at least one core,
the first CPU socket is to issue memory access request to the first memory hub to access a memory device connected to the first memory hub,
the first CPU socket is to issue memory access request to the second memory hub to access a second memory device connected to the second memory hub,
the second CPU socket is to issue memory access request to the first memory hub to access the memory device connected to the first memory hub, and
the second CPU socket is to issue memory access request to the second memory hub to access the second memory device connected to the second memory hub.

### Claim 20 (depends on 19)

The system of claim 19, wherein the first home agent is to perform a cache coherency operation for the first CPU socket.

### Claim 21 (depends on 19)

The system of claim 19, wherein the first CPU socket is to manage permission to access memory regions of one or more memory devices and
the first CPU socket is to delegate the management of permission to access memory regions of the one or more memory devices to the first memory hub.

### Claim 22 (depends on 1)

The apparatus of claim 1, comprising:
at least one memory device coupled to the memory hub.

### Claim 23 (depends on 1)

The apparatus of claim 1, comprising:
a first processor package for a first processor socket of the at least two processor sockets and
a second processor package for a second processor socket of the at least two processor sockets.

### Claim 24 (depends on 17)

The computer-readable medium of claim 17, wherein an XPU of the multiple XPUs comprises one or more of: a central processing unit (CPU), a graphics processing unit (GPU), a general purpose GPU (GPGPU), a field programmable gate array (FPGA), cryptographic accelerator, or application specific integrated circuit (ASIC).
