Direct message transfer between distributed processes
AssigneeIntel Corporation
InventorsGregory J. Regnier, David S. Dunning, Donald F. Cameron, Gary L. McAlpine
Life of this patent
Estimating the term…
Abstract
An interprocess communication technique transfers a message from a first process' memory (on a first computer system) directly to a second process' memory (on a second computer system). The message is identified by a virtual address and possibly a memory handle. The message is not stored in intermediary memory, such as operating system buffer memory, during the transfer. The communication technique may also provide virtual to physical address translation and memory protection. Memory protection is provided by ensuring that the communicating processes own the memory (the contents of which includes the message) being transferred between them.
Claims20
A method for sending a message between two processes comprising:
- receiving a descriptor having a virtual address associated with the message and a memory handle associated with a first process executing on a first computer system;
- retrieving a physical address and a protection tag using the virtual address and memory handle;
- and
- sending, through a network interface controller, the message, located at a location specified by the physical address, to a second process executing on a second computer system without storing the message in an intermediary memory if the retrieved protection tag matches a protection tag associated with the first process alter a single data transfer initialization occurs for the first process in order to respond to different data transfer requests therefrom.
A method for transferring a message between two processes comprising:
- receiving a message descriptor having a virtual address associated with the message and a memory handle associated with a first process executing on a first computer system;
- retrieving a physical address and a protection tag using the virtual address and the memory handle;
- and
- transferring, through a network interface controller, the message to a location specified by the physical address and associated with a second process executing on a second computer system, without storing the message in an intermediary memory, if the retrieved protection tag matches a protection tag associated with the second process after a single data transfer initialization occurs for the first process in order to respond to different data transfer requests therefrom.
A method for reading a message between two processes comprising:
- receiving a message descriptor having a first virtual address associated with the message and a first memory handle associated with a first process executing on a first computer system, and a second memory handle and a second virtual address associated with a second process executing on a second computer system;
- retrieving a physical address and a protection tag using the second virtual address and the second memory handle;
- and
- transferring, through a network interface controller, the message to a location specified by the physical address, without storing the message in an intermediary memory, if the retrieved protection tag matches a protection tag associated with the second process after a single data transfer initialization occurs for the first process in order to respond to different data transfer requests therefrom.
A method for writing a message between two processes comprising:
- receiving a message descriptor having a first virtual address and a first memory handle associated with a first process executing on a first computer system, and a second virtual address associated with the message and a second memory handle associated with a second process executing on a second computer system;
- retrieving a physical address and a protection tag using the first virtual address and the first memory handle;
- and
- transferring, through a network interface controller, the message to a location specified by the physical address, without storing the message in an intermediary memory, if the retrieved protection tag matches a protection tag associated with the first process after a single data transfer initialization occurs for the first process in order to respond to different data transfer requests therefrom.
Dependencies are inferred from the claim text.