IP Library Granted Patent US 10,176,108
Granted Patent B2
US 10,176,108 · App. 15/283,065 · Granted Jan 8, 2019

Accessing memory coupled to a target node from an initiator node

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,176,108
App. No.
15/283,065
Granted
Jan 8, 2019
Kind
B2
Abstract

Provided are a method, apparatus, and a system in which an initiator node is configured to communicate with a target node that is coupled to a memory. At system initialization time, a memory address map of the initiator node is generated to include addresses corresponding to the memory to which the target node is coupled. The initiator node accesses the memory coupled to the target node, by using the memory address map of the initiator node.

Claims (47)

1. A method, comprising:

configuring an initiator node to communicate with a target node that is coupled to a memory included in one or more dual inline memory modules (DIMM) devices, wherein addresses corresponding to the memory comprises DIMM device physical addresses; and

in response to receiving a request, by the initiator node, for accessing a system physical address of the initiator node, performing, by the initiator node, operations comprising:

converting the system physical address of the initiator node to a DIMM device physical address and subsequently converting the DIMM device physical address to a system physical address of the target node; and

sending a message to the target node to access the system physical address of the target node, in response to converting the DIMM device physical address to the system physical address of the target node.

2. The method of claim 1 , the method further comprising:

receiving, by the initiator node, a response from the target node, wherein the response from the target node is based on accessing the one or more DIMM devices via the system physical address of the target node sent to the target node; and

forwarding, by the initiator node, the response to an entity from which the request for accessing the system physical address of the initiator node was received.

3. The method of claim 1 , wherein in response to a hot plugging of the target node, the initiator node configures or updates a memory address map of the initiator node during runtime, and notifies the configured or updated memory address map of the initiator node to an operating system, and wherein:

the initiator node comprises a central processing complex having a plurality of cores; and

the target node comprises a fabric memory expander.

4. The method of claim 1 , wherein the initiator node prioritizes memory access requests over I/O requests.

5. The method of claim 1 , wherein different opcodes corresponding to different patterns in data are used for communication between the initiator node and the target node, wherein an opcode is a portion of a machine language instruction that specifies an operation to be performed in association with an operand that specifies data to be processed.

6. The method of claim 1 , wherein a selected opcode is used for indicating compressed data for communication between the initiator node and the target node, wherein the selected opcode is a portion of a machine language instruction that specifies an operation to be performed in association with an operand that specifies data to be processed.

7. An apparatus, comprising:

an initiator node;

a target node coupled to the initiator node;

a memory coupled to the target node, wherein the initiator node is configurable to:

communicate with the target node that is coupled to the memory, wherein the memory is included in one or more dual inline memory modules (DIMM) devices, and wherein addresses corresponding to the memory comprises DIMM device physical addresses;

in response to receiving a request, by the initiator node, for accessing a system physical address of the initiator node, convert the system physical address of the initiator node to a DIMM device physical address and subsequently convert the DIMM device physical address to a system physical address of the target node; and

send a message to the target node to access the system physical address of the target node, in response to converting the DIMM device physical address to the system physical address of the target node.

8. The apparatus of claim 7 , wherein the initiator node is further configurable to:

receive, a response from the target node, wherein the response from the target node is based on accessing the one or more DIMM devices via the system physical address of the target node sent to the target node; and

forward the response to an entity from which the request for accessing the system physical address of the initiator node was received.

9. The apparatus of claim 7 , wherein in response to a hot plugging of the target node, the initiator node is operable to perform operations to configure or update a memory address map of the initiator node during runtime, and notify the configured or updated memory address map of the initiator node to an operating system, and wherein:

the initiator node comprises a central processing complex having a plurality of cores; and

the target node comprises a fabric memory expander.

10. The apparatus of claim 7 , wherein the initiator node prioritizes memory access requests over I/O requests.

11. The apparatus of claim 7 , wherein different opcodes corresponding to different patterns in data are used for communication between the initiator node and the target node, wherein an opcode is a portion of a machine language instruction that specifies an operation to be performed in association with an operand that specifies data to be processed.

12. The apparatus of claim 7 , wherein a selected opcode is used for indicating compressed data for communication between the initiator node and the target node, wherein the selected opcode is a portion of a machine language instruction that specifies an operation to be performed in association with an operand that specifies data to be processed.

13. A system, comprising:

a display;

an initiator node coupled to display;

a target node coupled to the initiator node; and

a memory coupled to the target node, wherein the initiator node is configurable to:

communicate with the target node that is coupled to the memory, wherein the memory is included in one or more dual inline memory modules (DIMM) devices, and wherein addresses corresponding to the memory comprises DIMM device physical addresses;

in response to receiving a request, by the initiator node, for accessing a system physical address of the initiator node, convert the system physical address of the initiator node to a DIMM device physical address and subsequently convert the DIMM device physical address to a system physical address of the target node; and

send a message to the target node to access the system physical address of the target node, in response to converting the DIMM device physical address to the system physical address of the target node.

14. The system of claim 13 , wherein the initiator node is further configurable to:

receive, a response from the target node, wherein the response from the target node is based on accessing the one or more DIMM devices via the system physical address of the target node sent to the target node; and

forward the response to an entity from which the request for accessing the system physical address of the initiator node was received.

15. The system of claim 13 , wherein in response to a hot plugging of the target node, the initiator node is operable to perform operations to configure or update a memory address map of the initiator node during runtime, and notify the configured or updated memory address map of the initiator node to an operating system, and wherein:

the initiator node comprises a central processing complex having a plurality of cores; and

the target node comprises a fabric memory expander.

16. The system of claim 13 , wherein the initiator node prioritizes memory access requests over I/O requests.

17. The system of claim 13 , wherein different opcodes corresponding to different patterns in data are used for communication between the initiator node and the target node, wherein an opcode is a portion of a machine language instruction that specifies an operation to be performed in association with an operand that specifies data to be processed.

18. The system of claim 13 , wherein a selected opcode is used for indicating compressed data for communication between the initiator node and the target node, wherein an opcode is a portion of a machine language instruction that specifies an operation to be performed in association with an operand that specifies data to be processed.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2017
From: NACHIMUTHU, MURUGASAMY K.; KUMAR, MOHAN J.; ZIAKAS, DIMITRIOS
To: INTEL CORPORATION
Reel/Frame 042621/0783 →