Sharing list for multi-node DMA write operations
First Claim
1. A method for performing a DMA write operation on a memory with a sharing list in a multi-node system, the method comprising the steps of:
- issuing a DMA write linking command that attaches a new node to the sharing list, wherein said sharing list is a list of nodes which have a common memory line copied into cache memory within each of the nodes; and
maintaining a connection between the memory and the sharing list while the new node is attaching to the sharing list, wherein said step of maintaining a connection is enabled by said DMA write linking command.
3 Assignments
0 Petitions
Accused Products
Abstract
In a SCI based multi-node system, the write purge command joins the new node that is requesting to write to the memory of the sharing list, while maintaining the connection between the memory and the sharing list. The new node then issues the purging command to each node in the sharing list, while still maintaining the connection of the sharing list to the memory. Next, the new node issues the collapsing command to separate the sharing list from the memory after the purging command has been issued to each node. A send request data packet is used to distribute the write purge command to the memory node.
21 Citations
33 Claims
-
1. A method for performing a DMA write operation on a memory with a sharing list in a multi-node system, the method comprising the steps of:
-
issuing a DMA write linking command that attaches a new node to the sharing list, wherein said sharing list is a list of nodes which have a common memory line copied into cache memory within each of the nodes; and
maintaining a connection between the memory and the sharing list while the new node is attaching to the sharing list, wherein said step of maintaining a connection is enabled by said DMA write linking command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
the linking command is issued by the new node.
-
-
3. The method according to claim 1, wherein:
the sharing list, the new node, and the memory are connected by a plurality of pointers.
-
4. The method according to claim 1, wherein:
the new node is connected between the memory and the shared list.
-
5. The method according to claim 1, wherein:
the connection is between the new node and the memory.
-
6. The method according to claim 1, further comprising the steps of:
-
issuing a purging command to each node in the sharing list; and
issuing a collapsing command to separate the sharing list from the memory after the purging command has been issued to each node.
-
-
7. The method according to claim 6, wherein:
the purge command invalidates the data stored at each node.
-
8. The method according to claim 6, wherein:
the purge command is issued by the new node.
-
9. The method according to claim 6, wherein:
the step of issuing the collapsing command also separates each node in the sharing list from each other.
-
10. The method according to claim 6, wherein:
the step of issuing the collapsing command also separates the new node from the memory.
-
11. The method according to claim 6, wherein:
the collapsing command is issued by the new node.
-
12. The method according to claim 1, further comprising the step of:
using a data packet to distribute the command for the write operation throughout the system.
-
13. The method according to claim 1, further comprising the step of:
using a write mask as the write command for the write operation.
-
14. The method according to claim 1, wherein:
the system is a SCI system with cache coherent non-uniform memory access.
-
15. A method for performing a write purge partial operation on a memory with a sequential sharing list in a SCI based multi-node system cache coherent non-uniform access, the method comprising the steps of:
-
issuing a memory_write_purge_attach_to_list command that attaches a new node to the sharing list, wherein said sharing list is a list of nodes which have a common memory line copied into cache memory within each of the nodes; and
maintaining a connection between the memory and the sharing list while the new node is attaching to the sharing list. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
the memory is marked fresh prior to the step of issuing a memory_write_purge_attach_to_list command.
-
-
17. The method according to claim 15, wherein:
the sharing list comprises a plurality of nodes, with a first node of the list marked head_fresh, and with a last node of the list marked tail_valid.
-
18. The method according to claim 17, wherein:
the remaining nodes of the list are marked mid_valid.
-
19. The method according to claim 15, further comprising the steps of:
-
issuing a cpurge_fresh_to_invalid command from the new node to a first node of the list;
issuing a cpurge_valid_to_invalid command from the new node to the next node of the list;
repeating the cpurge_valid_to_invalid command until the node in the list has received the command; and
issuing a memory update_list-to-home command after the step of repeating has been completed.
-
-
20. The method according to claim 19, wherein:
the memory is marked home subsequent to the step of issuing a memory update_list-to-home command.
-
21. The method according to claim 15, further comprising the step of:
using a send request packet to distribute the command for the write operation throughout the system.
-
22. The method according to claim 15, further comprising the step of:
using a write mask as the write command for the write operation.
-
23. A multi-node system that uses a DMA write operation on a memory with a sharing list, the system comprising:
-
a DMA write linking command for attaching a new node to the sharing list, wherein said sharing list is a list of nodes which have a common memory line copied into cache memory within each of the nodes; and
means for maintaining a connection between the memory and the sharing list while the new node is attaching to the sharing list, wherein the means for maintaining a connection is enabled by said DMA write linking command. - View Dependent Claims (24, 25, 26, 27, 28)
the sharing list, the new node, and the memory are connected by a plurality of pointers; and
the connection is between the new node and the memory.
-
-
25. The system according to claim 23, further comprising:
-
means for purging each node in the sharing list; and
means for separating the sharing list from the memory after each node has been purged.
-
-
26. The system according to claim 25, wherein:
the means for purging invalidates the data stored at each node.
-
27. The system according to claim 25, further comprising:
means for separating each node in the sharing list from each other.
-
28. The system according to claim 23, wherein:
the system is a SCI system with cache coherent non-uniform memory access.
-
29. A method for performing a DMA write operation on a memory with a sharing list in a multi-node system, the method comprising the steps of:
-
issuing a DMA write linking command that attached a new node of the sharing list, wherein said sharing list is a list of nodes which have a common memory line copied into cache memory within each of the nodes and wherein said new node includes said common memory line;
maintaining a connection between the memory and the sharing list while the new node is attaching to the sharing list, wherein said step of maintaining a connection is enabled by said DMA write linking command; and
masking a portion of data in said common memory line in said new node to enable merging of new data into said memory line. - View Dependent Claims (30, 31, 32, 33)
issuing a purging command to each node in the sharing list; and
issuing a collapsing command to separate the sharing list from the memory after the purging command has been issued to each node.
-
-
31. The method of claim 30 wherein the step of issuing the collapsing command comprises the step of:
separating said nodes in said sharing list from each other.
-
32. The method of claim 30 wherein the step of issuing the collapsing command comprises the step of:
separating said new node from said memory.
-
33. The method of claim 29 wherein the multi-node system is a SCI (scale coherent interface) system with cache coherent non-uniform memory access.
Specification