Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes
First Claim
1. A system comprising:
- a plurality of computers coupled to a network, wherein each of the plurality of computers comprises one or more software modules which, when executed on the computer, present resources of the plurality of computers as a virtual machine;
wherein the virtual machine is a non-uniform memory access (NUMA) machine comprising a plurality of nodes, each node having memory that is part of a distributed shared memory, and wherein the virtual machine is coherent with a weakly ordered memory model; and
wherein the one or more software modules, are executable in a current owner node of a first block in response to an ownership transfer request from a requesting node of the plurality of nodes for the first block, wherein the ownership transfer request is a request to transfer ownership of the first block from the current owner node to the requesting node, wherein the one or more software modules, when executed;
determine that the first block has been modified in the current owner node; and
perform a synchronization operation in response to determining that the first block is modified in the current owner node, wherein the synchronization operation comprises determining each other modified block in the memory of the current owner node and wherein the synchronization operation further comprises writing the first block to a home node of the first block and writing each other modified block in the current owner node to the home node of that modified block in response to detecting that the first block is modified in the current owner node and wherein the first block and each modified block is stored in a separate memory location in the memory of the respective home node of that block.
9 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a virtual NUMA system may be formed from multiple computer systems coupled to a network such as InfiniBand, Ethernet, etc. Each computer includes one or more software modules which present the resources of the computers as a virtual NUMA machine. The virtual machine is a non-uniform memory access (NUMA) machine comprising a plurality of nodes, each node having memory that is part of a distributed shared memory. Additionally, the virtual machine is coherent with a weakly ordered memory model. When executed in a current owner node of a first block in response to an ownership transfer request from a requesting node of the plurality of nodes for the first block, the software modules perform a synchronization operation if the first block has been modified in the current owner node.
90 Citations
24 Claims
-
1. A system comprising:
-
a plurality of computers coupled to a network, wherein each of the plurality of computers comprises one or more software modules which, when executed on the computer, present resources of the plurality of computers as a virtual machine; wherein the virtual machine is a non-uniform memory access (NUMA) machine comprising a plurality of nodes, each node having memory that is part of a distributed shared memory, and wherein the virtual machine is coherent with a weakly ordered memory model; and wherein the one or more software modules, are executable in a current owner node of a first block in response to an ownership transfer request from a requesting node of the plurality of nodes for the first block, wherein the ownership transfer request is a request to transfer ownership of the first block from the current owner node to the requesting node, wherein the one or more software modules, when executed; determine that the first block has been modified in the current owner node; and perform a synchronization operation in response to determining that the first block is modified in the current owner node, wherein the synchronization operation comprises determining each other modified block in the memory of the current owner node and wherein the synchronization operation further comprises writing the first block to a home node of the first block and writing each other modified block in the current owner node to the home node of that modified block in response to detecting that the first block is modified in the current owner node and wherein the first block and each modified block is stored in a separate memory location in the memory of the respective home node of that block. - View Dependent Claims (2, 3, 4, 5, 6, 22)
-
-
7. A computer accessible storage medium storing a plurality of instructions which, when executed on a plurality of computers coupled to a network, present resources of the plurality of computers as a virtual machine, wherein the virtual machine is a non-uniform memory access (NUMA) machine comprising a plurality of nodes, each node having memory that is part of a distributed shared memory, and wherein the virtual machine is coherent with a weakly ordered memory model, and wherein the plurality of instructions, when executed on a first computer of the plurality of computers and the first computer includes a current owner node of a first block, wherein the plurality of instructions are executed in response to an ownership transfer request for the first block received from a requesting node of the plurality of nodes, wherein the ownership transfer request is a request to transfer ownership of the first block from the current owner node to the requesting node, and wherein the plurality of instructions, when executed:
-
detect that the first block has been modified in the current owner node; and perform a synchronization operation responsive to detecting that the first block has been modified in the current owner node, wherein the synchronization operation comprises determining each other modified block in the memory of the current owner node and wherein the synchronization operation further comprises writing the first block to a home node of the first block and writing each other modified block in the current owner node to the home node of that modified block in response to detecting that the first block is modified in the current owner node, and wherein the first block and each modified block is stored in a separate memory location in the memory of the respective home node of that block. - View Dependent Claims (8, 9, 10, 11, 12, 23)
-
-
13. In a system comprising a plurality of computers coupled to a network, a method comprising:
-
presenting resources of the plurality of computers as a virtual machine, wherein the virtual machine is a non-uniform memory access (NUMA) machine comprising a plurality of nodes, each node having memory that is part of a distributed shared memory, wherein the virtual machine is coherent with a weakly ordered memory model; receiving an ownership transfer request for a first block in a current owner node of the first block from a requesting node of the first block, wherein the ownership transfer request is a request to transfer ownership of the first block from the current owner node to the requesting node; determining that the first block is modified in the current owner node; and responsive to the ownership transfer request and determining that the first block is modified in the current owner node, performing a synchronization operation in the current owner node, wherein performing the synchronization operation comprises determining each other modified block in the memory of the current owner node, and wherein performing the synchronization operation further comprises writing the first block to a home node of the first block and writing each other modified block in the current owner node to the home node of that modified block in response to detecting that the first block is modified in the current owner node, and wherein the first block and each modified block is stored in a separate memory location in the memory of the respective home node of that block. - View Dependent Claims (14, 15, 16, 24)
-
-
17. A computer comprising a memory, execution resources configured to execute instructions, during use, and hardware to couple to a network, wherein the execution resources, during use, execute one or more software modules stored in the memory, wherein the one or more software modules, when executed, configure the computer with other computers coupled to the network to form a virtual machine wherein the virtual machine is a non-uniform memory access (NUMA) machine comprising a plurality of nodes, each node having memory that is part of a distributed shared memory, and wherein the virtual machine is coherent with a weakly ordered memory model;
- and wherein the one or more software modules, when executed in a current owner node of a first block in response to an ownership transfer request from a requesting node of the plurality of nodes for the first block, wherein the ownership transfer request is a request to transfer ownership of the first block from the current owner node to the requesting node, and wherein the one or more software modules when executed;
detect that the first block has been modified in the current owner node; and perform a synchronization operation in the current owner node responsive to detecting that the first block has been modified in the current owner node and responsive to the ownership transfer request, wherein performing the synchronization operation comprises determining each other modified block in the memory of the current owner node, and wherein performing the synchronization operation further comprises writing the first block to a home node of the first block and writing each other modified block in the current owner node to the home node of that modified block in response to detecting that the first block is modified in the current owner node, and wherein the first block and each modified block is stored in a separate memory location in the memory of the respective home node of that block. - View Dependent Claims (18, 19, 20, 21)
- and wherein the one or more software modules, when executed in a current owner node of a first block in response to an ownership transfer request from a requesting node of the plurality of nodes for the first block, wherein the ownership transfer request is a request to transfer ownership of the first block from the current owner node to the requesting node, and wherein the one or more software modules when executed;
Specification