Lock-up free data sharing
First Claim
1. A software implemented method for accessing shared data of a computer system including a plurality of workstations, each workstation including a processor, a memory having addresses, and an input/output interface connected to each other by a bus, the input/output interfaces connecting the workstations to each other by a network, comprising the steps of:
- designating addresses of the memories as virtual shared addresses to store the shared data;
allocating a portion of the virtual shared addresses to store the shared data as a plurality of blocks accessible by any of the processors, each block including an integer number of lines;
instrumenting a particular program to request an exclusive copy of the block if the particular program includes a store instruction which is to store shared data in the block;
executing additional store instructions of the particular program while the request for the exclusive copy of the block is pending, and noting addresses of data of the requested block modified by the additional instructions;
in response to receiving the exclusive copy of the block, merging the modified data stored at the noted addresses with the shared data of the exclusive copy of the block to enable lock-up free data sharing.
4 Assignments
0 Petitions
Accused Products
Abstract
A software implemented method for lock-up free data sharing operates in a networked computer system including a plurality of workstations. Each workstation including a processor, a memory having addresses, and an input/output interface connected to each other by a bus. A set of addresses of the memories are designated as virtual shared addresses to store shared data. A portion of the virtual shared addresses is allocated to store the shared data as a plurality of blocks accessible by programs executing in any of the processors, each block including an integer number of lines. A program is instrumented to request an exclusive copy of the block if the program includes a store instruction which attempts to access data stored in a non-exclusive copy of the block. Additional instructions of the program are executed while the request for the exclusive copy of the block is pending. Addresses of data of the block modified by the additional instructions are recorded. In response to receiving the exclusive copy of the block, the modified data stored at the recorded addresses are merged with the data of the exclusive copy of the block.
-
Citations
17 Claims
-
1. A software implemented method for accessing shared data of a computer system including a plurality of workstations, each workstation including a processor, a memory having addresses, and an input/output interface connected to each other by a bus, the input/output interfaces connecting the workstations to each other by a network, comprising the steps of:
-
designating addresses of the memories as virtual shared addresses to store the shared data; allocating a portion of the virtual shared addresses to store the shared data as a plurality of blocks accessible by any of the processors, each block including an integer number of lines; instrumenting a particular program to request an exclusive copy of the block if the particular program includes a store instruction which is to store shared data in the block; executing additional store instructions of the particular program while the request for the exclusive copy of the block is pending, and noting addresses of data of the requested block modified by the additional instructions; in response to receiving the exclusive copy of the block, merging the modified data stored at the noted addresses with the shared data of the exclusive copy of the block to enable lock-up free data sharing. - View Dependent Claims (2)
-
-
3. A system for accessing shared data, the system comprising:
-
a first memory, including a first block of data having a first plurality of entries, each entry having a corresponding address; a second memory, including a second block of data having a second plurality of entries, each entry having a corresponding address; and a processor configured to; request a copy of the first block of data, modify a particular one of the second plurality of entries in the second block which corresponds to a particular one of the first plurality of entries in the first block; and merge the particular one of the second entries with the requested copy of the first block of data. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for accessing shared data stored on a plurality of computers, including a first computer having a first memory for storing a first block of data having a plurality of entries including a first entry and a second computer having a second memory for storing a second block of data having a second entry, the method comprising the steps of:
-
requesting a copy of the first block of data; modifying the second entry in the second block of data; recording the address of the second entry substantially simultaneous with the step of modifying; and merging the first block of data with at least a portion of the second block of data. - View Dependent Claims (14, 15, 16, 17)
-
Specification