System and method for explict communication of messages between processes running on different nodes in a clustered multiprocessor system
First Claim
1. An OS-bypass message transport mechanism to communicate between processor nodes that execute a process on a clustered multiprocessor system, said transport mechanism comprising:
- a connection that includes a send side coupled to a source processor node and a receive side coupled to a destination processor node; and
a per-connection memory buffer, and coupled to both the send side and the receive side of the connection, wherein the send side includes an output data buffer coupled between the source processor node and the per-connection memory buffer and the receive side includes an input data buffer coupled between the per-connection memory buffer and the destination processor node, and wherein the per-connection memory buffer is dedicated to the process.
10 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention include a mechanism for explicit communication in a clustered multiprocessor system that supports low-latency, protected, user-mode, communication across the machine boundaries of a clustered multiprocessor. Data transport may be accomplished over persistent, unidirectional, point-to point connections, each of which may be embodied in a small amount of state at each end, along with a statically allocated per-connection memory buffer, which may be directly accessible to the transport mechanism at both ends of each notional link. System Memory protection may be afforded by operating system (“OS”) facilitated allocation of both restricted control of the network interface, and responsibility for data transport, to an application thread that may execute in the context of the processor-managed virtual address space. Connection buffer protection may be afforded by restricting access to connection state to those entries associated with the currently controlling thread.
-
Citations
19 Claims
-
1. An OS-bypass message transport mechanism to communicate between processor nodes that execute a process on a clustered multiprocessor system, said transport mechanism comprising:
-
a connection that includes a send side coupled to a source processor node and a receive side coupled to a destination processor node; and
a per-connection memory buffer, and coupled to both the send side and the receive side of the connection, wherein the send side includes an output data buffer coupled between the source processor node and the per-connection memory buffer and the receive side includes an input data buffer coupled between the per-connection memory buffer and the destination processor node, and wherein the per-connection memory buffer is dedicated to the process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 13)
-
-
11. The OS-bypass message transport mechanism of claim 11, wherein the processor nodes coupled to the MAP element are configured for a dual in-line memory module (DIMM) socket.
-
14. A clustered multiprocessor system comprising:
-
an OS-bypass message transport mechanism to communicate between processor nodes that execute a process on the system, wherein said mechanism includes a connection that includes a send side coupled to a source processor node and a receive side coupled to a destination processor node; and
a per-connection memory buffer coupled to both the send side and the receive side of the connection, wherein the send side includes an output data buffer coupled between the source processor node and the per-connection memory buffer and the receive side includes an input data buffer coupled between the per-connection memory buffer and the destination processor node, and wherein the per-connection memory buffer is dedicated to the process.
-
-
15. A method of transferring process data from a source processor node to a destination processor node that bypasses an operating system in a clustered multiprocessor system, said method comprising the steps of:
-
allocating a per-connection memory buffer accessible by both the source processor node and the destination processor node;
transferring the process data from the source processor node to an output data buffer on the send side;
transferring the process data from the output data buffer to the per-connection memory buffer;
transferring the process data from the per-connection memory buffer to an input data buffer on the receive side; and
processing the process data from the input data buffer using the destination processor node. - View Dependent Claims (16, 17, 18, 19)
-
Specification