System, method and computer program product for a distributed virtual address space
AssigneeInternational Business Machines Corporation
InventorKirk J. Krauss
Life of this patent
Estimating the term…
Abstract
A virtual memory management method, system, and computer program product at a first machine, receiving a request to access memory associated with a virtual address, at the first machine, initiating a translation of the virtual address to a logical address, during the translation of the virtual address to the logical address, determining that a machine identifier corresponds to a second machine, communicating the request to access the memory to the second machine, and at the second machine, fulfilling the memory access request.
Claims17
A computer-implemented virtual memory management method, the method comprising:
- at a first machine, receiving a request to access memory associated with a virtual address comprising a machine identifier and an address of a location in a local virtual address space of a machine associated with the machine identifier;
- at the first machine, initiating a translation of the virtual address to a logical address including a physical address;
- during the translation of the virtual address to the logical address, determining that the machine identifier corresponds to a second machine;
- communicating the request to access the memory to the second machine based on the machine identifier;
- and
- at the second machine, fulfilling the memory access request,
- wherein the first machine and the second machine are independent of an operating system and of a specific address translation hardware used by nodes of a distributed system,
- wherein the first machine and the second machine are on heterogeneous systems including an independence of hardware device support and operating system support to thereby support virtual address translation,
- further comprising:
- generating an interrupt that serves to implement the virtual address translation across nodes when a virtual address corresponds to a remote node, which is handled by a service routine that determines communicating the memory access request to the remote node;
- performing a listener routine on the second machine to complete the inter-node request;
- and
- providing redundancy by associating a single node identifier with multiple redundant nodes,
- wherein every node that execute threads of the process agrees on the identity of every other node, so that the entire address space is accessible across all of the nodes via the virtual addresses consistent across all of the nodes.
A computer program product for virtual memory management, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform:
- at a first machine, receiving a request to access memory associated with a virtual address comprising a machine identifier and an address of a location in a local virtual address space of a machine associated with the machine identifier;
- at the first machine, initiating a translation of the virtual address to a logical address including a physical address;
- during the translation of the virtual address to the logical address, determining that the machine identifier corresponds to a second machine;
- communicating the request to access the memory to the second machine based on the machine identifier;
- and
- at the second machine, fulfilling the memory access request,
- wherein the first machine and the second machine are independent of an operating system and of a specific address translation hardware used by nodes of a distributed system,
- wherein the first machine and the second machine are on heterogeneous systems including an independence of hardware device support and operating system support to thereby support virtual address translation,
- further comprising:
- generating an interrupt that serves to implement the virtual address translation across nodes when a virtual address corresponds to a remote node, which is handled by a service routine that determines communicating the memory access request to the remote node;
- performing a listener routine on the second machine to complete the inter-node request;
- and
- providing redundancy by associating a single node identifier with multiple redundant nodes,
- wherein every node that execute threads of the process agrees on the identity of every other node, so that the entire address space is accessible across all of the nodes via the virtual addresses consistent across all of the nodes.
A virtual memory management system, said system comprising:
- a processor;
- and
- a memory, the memory storing instructions to cause the processor to perform:
- at a first machine, receiving a request to access memory associated with a virtual address comprising a machine identifier and an address of a location in a local virtual address space of a machine associated with the machine identifier;
- at the first machine, initiating a translation of the virtual address to a logical address including a physical address;
- during the translation of the virtual address to the logical address, determining that the machine identifier corresponds to a second machine;
- communicating the request to access the memory to the second machine based on the machine identifier;
- and
- at the second machine, fulfilling the memory access request,
- wherein the first machine and the second machine are independent of an operating system and of a specific address translation hardware used by nodes of a distributed system,
- wherein the first machine and the second machine are on heterogeneous systems including an independence of hardware device support and operating system support to thereby support virtual address translation,
- the memory further storing instructions to cause the processor to perform:
- generating an interrupt that serves to implement the virtual address translation across nodes when a virtual address corresponds to a remote node, which is handled by a service routine that determines communicating the memory access request to the remote node;
- performing a listener routine on the second machine to complete the inter-node request;
- and
- providing redundancy by associating a single node identifier with multiple redundant nodes,
- wherein every node that execute threads of the process agrees on the identity of every other node, so that the entire address space is accessible across all of the nodes via the virtual addresses consistent across all of the nodes.
Dependencies are inferred from the claim text.