Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
First Claim
1. A computer system, comprising:
- a node interconnect; and
at least a local node and a remote node that are each coupled to said node interconnect, said local node including a local interconnect and said local and remote nodes each including one or more snoopers, wherein said one or more snoopers of said local node include a node controller interposed between said local interconnect and said node interconnect, wherein said node controller speculatively transmits a request transaction received from said local interconnect to said remote node via said node interconnect prior to determination of a local node response, wherein snoopers at the local node and the remote node independently process the request transaction to obtain the local node response at the local node and a remote node response at the remote node, and wherein said node controller of the local node handles the remote node response to said request transaction in accordance with the local node response.
1 Assignment
0 Petitions
Accused Products
Abstract
A non-uniform memory access (NUMA) computer system includes at least a local processing node and a remote processing node that are each coupled to a node interconnect. The local processing node includes a local interconnect, a processor and a system memory coupled to the local interconnect, and a node controller interposed between the local interconnect and the node interconnect. In response to receipt of a read request from the local interconnect, the node controller speculatively transmits the read request to the remote processing node via the node interconnect. Thereafter, in response to receipt of a response to the read request from the remote processing node, the node controller handles the response in accordance with a resolution of the read request at the local processing node. For example, in one processing scenario, data contained in the response received from the remote processing node is discarded by the node controller if the read request received a Modified Intervention coherency response at the local processing node.
140 Citations
24 Claims
-
1. A computer system, comprising:
-
a node interconnect; and
at least a local node and a remote node that are each coupled to said node interconnect, said local node including a local interconnect and said local and remote nodes each including one or more snoopers, wherein said one or more snoopers of said local node include a node controller interposed between said local interconnect and said node interconnect, wherein said node controller speculatively transmits a request transaction received from said local interconnect to said remote node via said node interconnect prior to determination of a local node response, wherein snoopers at the local node and the remote node independently process the request transaction to obtain the local node response at the local node and a remote node response at the remote node, and wherein said node controller of the local node handles the remote node response to said request transaction in accordance with the local node response. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
said computer system further comprises a third node;
said request transaction includes an address; and
said node controller of said local node determines a target node of said speculatively transmitted request transaction from among said remote node and said third node at least partially in response to said address included in said request transaction.
-
-
4. The computer system of claim 3, wherein said node controller sends said speculatively transmitted request transaction only to said target node.
-
5. The computer system of claim 4, wherein said node controller of said local node discards data received from said remote node in response to said request transaction if said local node response includes a modified or shared intervention coherency response.
-
6. The computer system of claim 1, said remote node including a system memory, wherein said node controller of said local node speculatively forwards said request transaction to said remote in response to a determination that said request transaction specifies an address associated with said system memory at said remote node.
-
7. The computer system of claim 1, wherein said node controller of said local node sources data received from said remote node onto said local interconnect of said local node if said local node response indicates that said request transaction cannot be serviced locally.
-
8. The computer system of claim 1, wherein snoopers at said local node and said remote node process said request transaction with independent timing.
-
9. The computer system of claim 1, wherein said node controller of said local node discards data received from said remote node in response to said request transaction if said local node response indicates that said request transaction can be serviced at said local node.
-
10. A method of operation in a computer system including a node interconnect that couples at least a local node and a remote node that each contain one or more snoopers, wherein said one or more snoopers at said local node include a node controller interposed between a local interconnect of the local node and said node interconnect, said method comprising:
-
speculatively transmitting a request transaction received from said local interconnect to said remote node via said node interconnect prior to determination of a local node response;
independently processing the request transaction by snoopers of the local node and snoopers of the remote node to obtain the local node response at the local node and a remote node response at the remote node;
transmitting the remote node response to the local node; and
in response to receipt at said local node of the remote node response, handling the remote node response in accordance with the local node response. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
in response to receipt of said speculative request transaction at said remote node, issuing said speculative request transaction on a local interconnect of said remote node.
-
-
12. The method of claim 10, wherein said computer system further includes a third node and said request transaction includes an address, said method further comprising:
determining a target node of said speculatively transmitted request transaction from among said remote node and said third node at least partially in response to said address included in said request transaction.
-
13. The method of claim 12, and further comprising in response to determination of the target node, sending said speculatively transmitted request transaction from the local node only to said target node.
-
14. The method of claim 10, said remote processing node including a system memory, wherein speculatively transmitting a request transacting comprises speculatively transmitting said request transaction to said remote processing node in response to a determination that said request transaction specifies an address associated with said system memory at said remote processing node.
-
15. The method of claim 10, wherein handling said response comprises sourcing data received from said remote processing node onto said local interconnect of said local processing node if said request transaction receives a coherency response at said local processing node indicating that said request transaction cannot be serviced locally.
-
16. The method of claim 10, wherein snoopers at said local node and said remote node process said request transaction with independent timing.
-
17. The method of claim 10, wherein handling the remote node response comprises discarding data received from said remote node in response to said request transaction if said local node response indicates that said request transaction can be serviced at said local node.
-
18. The method of claim 17, wherein handling said remote node response comprises discarding data received from said remote node if said local node response includes a modified or shared intervention coherency response.
-
19. A node for a computer system having multiple nodes, said node comprising:
-
a local interconnect; and
one or more snoopers coupled to the local interconnect, wherein said one or more snoopers include a node controller providing an interface for a node interconnect for interconnecting multiple nodes, wherein said node controller speculatively transmits a request transaction received from said local interconnect to the node interconnect prior to determination of a local node response by the one or more snoopers, and wherein the node controller handles a remote node response to said request transaction received from the node interconnect in accordance with the local node response. - View Dependent Claims (20, 21, 22, 23, 24)
the multiple nodes include at least three nodes;
the request transaction includes an address; and
said node controller determines a target node of said speculatively transmitted request transaction from among said multiple nodes at least partially in response to said address included in said request transaction.
-
-
21. The node of claim 20, wherein said node controller sends said speculatively transmitted request transaction via said node interconnect only to said target node.
-
22. The node of claim 19, wherein said node controller discards data received from said node interconnect in response to said request transaction if said local node response indicates that said request transaction can be serviced in said node.
-
23. The node of claim 22, wherein said node controller discards data received from said node interconnect in response to said request transaction if said local node response includes a modified or shared intervention coherency response.
-
24. The node of claim 19, wherein said node controller sources data received from said node interconnect in response to said request transaction onto said local interconnect if said local node response indicates that said request transaction cannot be serviced locally.
Specification