IP Library › Granted Patent US 11,586,541
Granted Patent B2
US 11,586,541 · App. 16/944,905 · Granted Feb 21, 2023

System and method for scalable hardware-coherent memory nodes

Inventors: Derek Schumacher (Auburn, CA); Randy Passint (Chippewa Falls, WI); Thomas McGee (Chippewa Falls, WI); Michael Malewicki (Chippewa Falls, WI); Michael S. Woodacre (Winchester, GB)
Assignee: Hewlett Packard Enterprise Development LP
G06F12/0815G06F13/4027G06F2212/1032
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 11,586,541
App. No.
16/944,905
Granted
Feb 21, 2023
Kind
B2
Abstract

One embodiment can provide a node controller in a multiprocessor system. The node controller can include a processor interface to interface with a processor, a memory interface to interface with a fabric-attached memory, a node-controller interface to interface with a remote node controller, and a cache-coherence logic to operate in a first mode or a second mode. The cache-coherence logic manages cache coherence for a local memory of the processor coupled to the processor interface when operating in the first mode, and the cache-coherence logic manages cache coherence for the fabric-attached memory coupled to the memory interface when operating in the second mode.

Claims (53)

1. A node controller in a multiprocessor system, the node controller comprising:

a processor interface to interface with a processor;

a memory interface to interface with a fabric-attached memory;

a node-controller interface to interface with a remote node controller; and

a cache-coherence logic comprising a local-memory-control logic to manage local memory-access requests and a remote-memory-control logic to manage remote memory-access requests;

wherein the cache-coherence logic is to maintain cache coherency for a local memory of the processor coupled to the processor interface or the fabric-attached memory coupled to the memory interface;

wherein, when the cache-coherence logic is maintaining cache coherency for the local memory, the local-memory-control logic is to forward a memory-access request received from the remote node controller to the processor via the processor interface to facilitate the processor in accessing the local memory; and

wherein, when the cache-coherence logic is maintaining cache coherency for the fabric-attached memory, the local-memory-control logic is to forward the memory-access request received from the remote node controller to the remote-memory-control logic via a special signal path between the local-memory-control logic and remote-memory-control logic.

2. The node controller of claim 1 , wherein the cache-coherence logic is to maintain cache coherency for the local memory in response to determining that the processor is directly coupled to the node controller via the processor interface, and wherein the cache-coherence logic is to maintain cache coherency for the fabric-attached memory in response to determining that the node controller is not directly coupled to any processor.

3. The node controller of claim 2 , wherein the special signal path comprises one of:

a direct path between the local-memory-control logic and remote-memory-control logic; and

a loopback path through the processor interface.

4. The node controller of claim 2 , wherein, when the cache-coherence logic maintains cache coherency for the fabric-attached memory, the remote-memory-control logic is to:

access the fabric-attached memory via the memory interface;

generate a memory-access response; and

send the memory-access response to the local-memory-control logic via the special signal path.

5. The node controller of claim 1 , wherein the processor interface comprises an UltraPath Interconnect (UPI), and wherein the memory interface comprises one of: a double-data rate (DDR) interface, a graphic DDR (GDDR) interface, a high bandwidth memory (HBM) interface, a Peripheral Component Interconnect Express (PCIe) interface, a compute express link (CXL) interface, a Gen-Z interface, an Infiniband interface, an Ethernet interface, and a Fibre Channel interface.

6. The node controller of claim 1 , wherein the cache-coherence logic implements a directory-based cache-coherence protocol.

7. The node controller of claim 1 , wherein the cache-coherence logic comprises one or more hardware modules to facilitate hardware-based coherence tracking.

8. A multiprocessor system, comprising:

a first node controller that is directly coupled to a processor; and

a second identical node controller that is not directly coupled to any processor and is coupled to a fabric-attached memory;

wherein each of the first and second node controllers comprises a cache-coherence logic comprising a local-memory-control logic to manage local memory-access requests and a remote-memory-control logic to manage remote memory-access requests;

wherein the first node controller is to maintain cache coherency for a local memory of the processor, with the local-memory-control logic of the cache-coherence logic of the first node controller forwarding a memory-access request received from a remote node controller to the processor via the processor interface to facilitate the processor in accessing its local memory; and

wherein the second node controller is to maintain cache coherency for the fabric-attached memory, with the local-memory-control logic of the cache-coherence logic of the second node controller forwarding the memory-access request received from the remote node controller to the remote-memory-control logic via a special signal path between the local-memory-control logic and remote-memory-control logic.

9. The multiprocessor system of claim 8 , wherein each of the first and second node controllers comprises:

a processor interface to interface with a processor;

a memory interface to interface with a fabric-attached memory; and

a node-controller interface to interface with a remote node controller.

10. The multiprocessor system of claim 9 , wherein the special signal path comprises one of:

a direct path between the local-memory-control logic and remote-memory-control logic; and

a loopback path through the processor interface.

11. The multiprocessor system of claim 9 , wherein the remote-memory-control logic of the cache-control logic of the second node controller is to:

access the fabric-attached memory via the memory interface;

generate a memory-access response; and

send the memory-access response to the local-memory-control logic via the special signal path.

12. The multiprocessor system of claim 9 , wherein the processor interface comprises an UltraPath Interconnect (UPI), and wherein the memory interface comprises one of: a double-data rate (DDR) interface, a graphic DDR (GDDR) interface, a high bandwidth memory (HBM) interface, a Peripheral Component Interconnect Express (PCIe) interface, a compute express link (CXL) interface, a Gen-Z interface, an Infiniband interface, an Ethernet interface, and a Fibre Channel interface.

13. The multiprocessor system of claim 8 , wherein the first and second node controllers implement a directory-based cache-coherence protocol.

14. The multiprocessor system of claim 8 , wherein each of the first and second node controllers comprises one or more hardware modules to facilitate hardware-based coherence tracking.

15. A method to maintain cache coherency in a multiprocessor system, the method comprising:

receiving, by a node controller, a memory-access request from a remote node controller in the multiprocessor system;

in response to determining, by the node controller, that a processor is directly coupled to the node controller, configuring a cache-coherence logic of the node controller to maintain cache coherency for a local memory of the processor; and

in response to determining, by the node controller, that the node controller is not directly coupled to any processor and is coupled to a fabric-attached memory, configuring the cache-coherence logic of the node controller to maintain cache coherency for the fabric-attached memory;

wherein the cache-coherence logic comprises a local-memory-control logic to manage local memory-access requests and a remote-memory-control logic to manage remote memory-access requests;

wherein, while the cache-coherence logic maintains cache coherency for the local memory, the local-memory-control logic is to forward a memory-access request received from a remote node controller to the processor via the processor interface to facilitate the processor in accessing its local memory; and

wherein, while the cache-coherence logic maintains cache coherency for the fabric-attached memory, the local-memory-control logic is to forward the memory-access request received from the remote node controller to the remote-memory-control logic via a special signal path between the local-memory-control logic and remote-memory-control logic.

16. The method of claim 15 , wherein the node controller comprises:

a processor interface to interface with a processor;

a memory interface to interface with a fabric-attached memory; and

a node-controller interface to interface with a remote node controller.

17. The method of claim 16 , wherein the special signal path comprises one of:

a direct path between the local-memory-control logic and remote-memory-control logic; and

a loopback path through the processor interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2020
From: SCHUMACHER, DEREK; PASSINT, RANDY; MCGEE, THOMAS; MALEWICKI, MICHAEL; WOODACRE, MICHAEL
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 053530/0831 →
Continuity (1)
Related Publication 20220035742A1 · Feb 3, 2022