IP Library Granted Patent US 10,467,159
Granted Patent B2
US 10,467,159 · App. 15/650,008 · Granted Nov 5, 2019

Memory node controller

Inventors: Jonathan Curtis Beard (Austin, TX); Roxana Rusitoru (Cambridge, GB); Curtis Glenn Dunham (Austin, TX)
Assignee: Arm Limited
G06F13/1694G06F12/0826G06F12/1036G06F12/1072G06F12/1081G06F13/1663H04L49/252H04L49/35H04L49/505G06F12/0824G06F2212/2542G06F2212/651G06F2212/657
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 10,467,159
App. No.
15/650,008
Granted
Nov 5, 2019
Kind
B2
Abstract

A memory node controller for a node of a data processing network, the network including at least one computing device and at least one data resource, each data resource addressed by a physical address. The node is configured to couple the at least one computing device with the at least one data resource. Elements of the data processing network are addressed via a system address space. The memory node controller includes a first interface to the at least one data resource, a second interface to the at least one computing device, and a system to physical address translator cache configured to translate a system address in the system address space to a physical address in the physical address space of the at least one data resource.

Claims (74)

1. A memory node controller for a node of a data processing network having at least one computing device and at least one data resource, the node configured to couple the at least one computing device with the at least one data resource and elements of the data processing network addressable via a system address space, the memory node controller comprising:

a first interface to the at least one data resource, where each of the at least one data resources is addressed via a physical address space;

a second interface to the at least one computing device;

a system to physical address translator cache, configured to translate a system address in the system address space to a physical address in the physical address space of a data resource of the at least one data resource, and

a dedicated hardware mechanism to collect and use metadata relating to data requests from the at least one computing device;

where the memory node controller is configured to:

push the requested data to a data delivery cache of the data processing network dependent on the collected metadata;

service a data request by the memory node controller when the requested data is not present in the data delivery cache; and

service the data request by the data delivery cache when the requested data is present in the data delivery cache.

2. The memory node controller of claim 1 , further comprising:

a physical device configuration setup (PDCS) memory that stores information indicative of a mapping of the elements of the data processing network into the system address space.

3. The memory node controller of claim 1 , where the at least one data resource comprises a remote network and where the first interface comprises a network interface card.

4. The memory node controller of claim 1 , where the first interface comprises an interface to another memory node controller.

5. The memory node controller of claim 4 , where the system address space comprises a plurality of address partitions and where the memory node controller is associated with a first address partition of the plurality of address partitions and the other memory node controller is associated with a second address partition of the plurality of address partitions.

6. The memory node controller of claim 1 , where the second interface comprises an interface to a processor core.

7. The memory node controller of claim 1 , where the second interface comprises an interface to a hardware accelerator.

8. The memory node controller of claim 1 , where the first interface comprises an interface to a memory device or a storage device.

9. A non-transient computer readable medium having instructions of a hardware description language representative of the memory node controller system of claim 1 .

10. A non-transient computer readable medium having a netlist representative of the memory node controller of claim 1 .

11. A data processing network comprising:

a first memory node controller;

a first plurality of addressable units addressed by a system address space and comprising a first plurality of data resources, each of the first plurality of data resources coupled to the first memory node controller via a channel and addressed by a physical address space; and

a first plurality of computing devices each coupled to the first memory node controller and configured to access the first plurality of addressable units via the first memory node controller,

where a computing device of the first plurality of computing devices is configured to translate a virtual memory address in a memory access request to a system address in the system address space; and

where the first memory node controller comprises a system address to physical address translator cache configured to translate the system address received from the computing device of the first plurality of computing devices to a physical address in the address space of a data resource of the first plurality of data resources.

12. The data processing network of claim 11 , further comprising:

one or more second memory node controllers, coupled to the first memory node controller;

where the first memory node controller is assigned a first partition of system addresses in the system address space,

where each of the one or more second memory node controllers is assigned a second partition of system addresses in the system address space, and

where a computing device of the first plurality of computing devices comprises a range table that associates the first memory node controller with system addresses in the first partition of system addresses and associates each of the one or more second memory node controllers with system addresses in the corresponding second partition of system addresses and is configured to send a request to access memory at a system address to a memory node controller of the first and second memory node controllers associated with the system address.

13. The data processing network of claim 12 , further comprising:

a second plurality of data resources, each coupled to a second memory node controller of the one or more second memory node controllers via a channel and having a physical address space; and

a second plurality of computing devices each coupled to a second memory node controller of the one or more second memory node controllers and configured to access the data processing network via the system address space,

where the one or more second memory node controllers are configured to couple the second plurality of computing devices with the second plurality of data resources.

14. The data processing network of claim 11 , where a first plurality of addressable units further comprises a hardware accelerator.

15. The data processing network of claim 11 , where a first plurality of addressable units further comprises a network interface card.

16. A method for accessing one or more data resources by one or more computing devices in a data processing network, the method comprising:

mapping elements of the data processing network to a system address space;

assigning a first partition of the system address space to a first memory node controller of the data processing network, where the one or more computing devices and the one or more data resources are coupled to the first memory node controller and where the first partition of the system address space comprises a first plurality of pages;

receiving, at the first memory node controller, a request to access an element of the data processing network at a system address in the system address space;

servicing the request by the first memory node controller when the system address is in the first partition of the system address space;

assigning a second partition of the system address space to a second memory node controller of the data processing network, where the second partition of the system address space comprises a second plurality of pages;

monitoring access to the second plurality of pages by the one or more computing devices coupled to the first memory node controller; and

migrating a page of the second plurality of pages from the second memory node controller to the first memory node controller dependent on the monitored access.

17. The method of claim 16 , further comprising:

forwarding the request to the second memory node controller when the system address is in the second partition of the system address space.

18. The method of claim 16 , further comprising:

servicing the request by the first memory node controller when the system address is in the second partition of the system address space and the system address is dynamically shared with the first memory node controller.

19. The method of claim 16 , where each data resource of the one or more data resources is coupled to the first memory node controller via a channel and where servicing the request by the first memory node controller comprises:

identifying a channel to a data resource of the one or more data resources corresponding to the system address;

translating the system address to a physical address in the data resource; and

accessing the data resource at the physical address via the identified channel.

20. The method of claim 16 , further comprising:

recording a coherence state of the migrated page.

21. A method for accessing one or more data resources by one or more computing devices in a data processing network, the method comprising:

mapping elements of the data processing network to a system address space;

assigning a first partition of the system address space to a first memory node controller of the data processing network, where the one or more computing devices and the one or more data resources are coupled to the first memory node controller;

receiving, at the first memory node controller, a request to access an element of the data processing network at a system address in the system address space; and

servicing the request by the first memory node controller when the system address is in the first partition of the system address space;

where the first partition of the system address space comprises a plurality of lines, and where the data processing network further comprises a data delivery cache, the method further comprising:

monitoring system memory requests to the plurality of lines by the one or more computing devices coupled to the first memory node controller;

servicing a system memory request by the first memory node controller when a requested line of the plurality of lines is not present in the data delivery cache;

pushing the requested lines from the first memory node controller to the data delivery cache of the data processing network dependent on the monitored system memory requests; and

servicing the system memory request by the data delivery cache when the requested line is present in the data delivery cache.

22. A method for accessing one or more data resources by one or more computing devices in a data processing network, the method comprising:

mapping elements of the data processing network to a system address space;

assigning a first partition of the system address space to a first memory node controller of the data processing network, where the one or more computing devices and the one or more data resources are coupled to the first memory node controller;

receiving, at the first memory node controller, a request to access an element of the data processing network at a system address in the system address space;

servicing the request by the first memory node controller when the system address is in the first partition of the system address space

assigning a second partition of the system address space to a second memory node controller of the data processing network where one or more additional data resources are coupled to the second memory node controller; and

the first memory node controller:

allocating memory in address range of the second partition of the system address space;

entering the allocated address range in a system address translation table of the first memory node controller; and

directing memory requests for an address in the allocated address range to the second memory node controller.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2017
From: BEARD, JONATHAN CURTIS; RUSITORU, ROXANA; DUNHAM, CURTIS GLENN
To: ARM LTD
Reel/Frame 043007/0004 →
Continuity (1)
Related Publication 20190018808A1 · Jan 17, 2019