Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
263 words
A software implemented method for sharing data stored in 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 a first set of the addresses of the memories as virtual shared addresses to store shared data, and a second set of the addresses of the memories as private addresses to store non-shared data, the addresses of the first set being greater than the addresses of the second set; allocating a portion of the virtual shared addresses to store a shared data structure as one or more blocks accessible by instructions of programs executing in any of the processors, the size of a particular allocated block varying with the shared data structure, each block including an integer number of lines, each line including a predetermined number of bytes of shared data; prior to executing the programs, analyzing the programs to locate access instructions that access the shared data stored at target addresses of the lines of the one or more blocks; modifying the programs to include additional instructions, the additional instructions to check for accesses to valid shared data stored at the target instructions, and the additional instructions to call miss handling code if the access instructions access invalid data, the miss handling code to call routines of a message handling library; generating an executable image including the modified programs, the miss handling code and the message passing library.
Claim 2
Dependent Claim
263 words
A software implemented method for sharing data stored in 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 a first set of the addresses of the memories as virtual shared addresses to store shared data, and a second set of the addresses of the memories as private addresses to store non-shared data, the addresses of the first set being greater than the addresses of the second set; allocating a portion of the virtual shared addresses to store a shared data structure as one or more blocks accessible by instructions of programs executing in any of the processors, the size of a particular allocated block varying with the shared data structure, each block including an integer number of lines, each line including a predetermined number of bytes of shared data; prior to executing the programs, analyzing the programs to locate access instructions that access the shared data stored at target addresses of the lines of the one or more blocks; modifying the programs to include additional instructions, the additional instructions to check for accesses to valid shared data stored at the target instructions, and the additional instructions to call miss handling code if the access instructions access invalid data, the miss handling code to call routines of a message handling library; generating an executable image including the modified programs, the miss handling code and the message passing library.
Claim 3
Dependent Claim
55 words
The method of claim 1 further comprising: maintaining a state table to check for valid and invalid accesses, there being one state table entry for each line of the one or more blocks; maintaining an exclusion table, there being one bit for each line, a particular bit to indicate an exclusive state of the line.
Claim 4
Dependent Claim
26 words
The method of claim 1 further comprising: inserting the additional instructions in delay slots of the programs to minimize machine cycles used by the additional instructions.
Claim 5
Dependent Claim
26 words
The method of claim 1 further comprising: analyzing a data flow of the programs to locate free registers which can be used by the additional instructions.
Claim 6
Dependent Claim
49 words
The method of claim 1 further comprising: partitioning the programs into procedures, and partitioning each procedure into one or more basic blocks; forming a program call graph and a flow graph for the procedures and basic block to trace a data flow and an execution flow of the programs.