Method for sharing variable-grained memory of workstations by sending particular block including line and size of the block to exchange shared data structures
First Claim
1. In a computer system including a plurality of workstations, each workstation including a processor, a memory having addresses, and input/output interfaces connected to each other by a bus, the input/output interfaces connecting the workstations to each other by a network, a software implemented method for sharing access to data stored in the memories of the workstations, comprising the steps of:
- designating a set of the addresses of the memories as virtual shared addresses to store shared data;
allocating a portion of the virtual shared addresses to store a shared data structure as one or more blocks accessible by programs executing in any of the processors, the size of a particular allocated block to vary with the size of the shared data structure, each block including an integral number of lines, each line including a predetermined number of bytes of shared data;
storing access information of a particular block of the shared data structure in the memory of a home of one of the workstations, the access information including the size of the particular block;
instrumenting the programs to check for instructions which access a target address of a particular line of the shared data structure; and
in response to receiving an access request from a requesting one of the workstations to access shared data at the target address of the particular line, sending shared data of a particular block including the particular line and the size of the particular block to said requesting workstation via the network to enable the workstations to exchange shared data structures stored in variable sized blocks via the network.
4 Assignments
0 Petitions
Accused Products
Abstract
In a distributed shared memory system, workstations are connected to each other by a network. Each workstation includes a processor, a memory having addresses, and an input/output interface to interconnect the workstations. A software implemented method enables data sharing between the workstations using variable sized quantities of data. A set of the addresses of the memories are designated as virtual shared addresses to store shared data. A portion of the virtual shared addresses are allocated to store a shared data structure as one or more blocks. The shared data structure is accessible by programs executing in any of the processors. The size of a particular allocated block can vary for different shared data structures. Each block includes an integer number of lines, and each line includes a predetermined number of bytes of shared data. Access information of a particular block is stored in the memory of a home one of the workstations. The access information includes the size of the particular block and an identity of workstations having a copy of the block.
356 Citations
10 Claims
-
1. In a computer system including a plurality of workstations, each workstation including a processor, a memory having addresses, and input/output interfaces connected to each other by a bus, the input/output interfaces connecting the workstations to each other by a network, a software implemented method for sharing access to data stored in the memories of the workstations, comprising the steps of:
-
designating a set of the addresses of the memories as virtual shared addresses to store shared data; allocating a portion of the virtual shared addresses to store a shared data structure as one or more blocks accessible by programs executing in any of the processors, the size of a particular allocated block to vary with the size of the shared data structure, each block including an integral number of lines, each line including a predetermined number of bytes of shared data; storing access information of a particular block of the shared data structure in the memory of a home of one of the workstations, the access information including the size of the particular block; instrumenting the programs to check for instructions which access a target address of a particular line of the shared data structure; and in response to receiving an access request from a requesting one of the workstations to access shared data at the target address of the particular line, sending shared data of a particular block including the particular line and the size of the particular block to said requesting workstation via the network to enable the workstations to exchange shared data structures stored in variable sized blocks via the network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
Specification