Validation checking of shared memory accesses
First Claim
1. 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, a software implemented method for identifying valid load accesses to shared data stored in the memories by programs executing in the workstations, comprising the steps of:
- designating a set of the addresses of the memories as virtual shared addresses to store shared data;
allocating, by a particular one of the programs, a portion of the virtual shared addresses to store a shared data structure as one or more blocks accessible by the programs executing in any of the processors, each block including an integer number of lines, each line including a predetermined number of bytes;
instrumenting the particular program to initialize the bytes allocated for the shared data structure to a predetermined flag value to indicate an invalid state of the shared data;
instrumenting load instructions of the programs to check if data loaded from the shared data structure are different than the predetermined flag value; and
executing the load instruction if the data are different than the predetermined flag value.
4 Assignments
0 Petitions
Accused Products
Abstract
In a computer system a plurality of workstations are connected to each other by a network. 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 connect the workstations to each other via the network. Valid data accesses are checked by a software implemented method. A set of the addresses of the memories are designated as virtual shared addresses to store shared data. A particular one of the programs allocates a portion of the virtual shared addresses to store a shared data structure as one or more blocks accessible by the programs executing in any of the processors. The size of a particular block depends on the size of the shared data structure. Each block including an integer number of lines, each line including a predetermined number of bytes. The program is instrumented to initialize the bytes allocated for the shared data structure to a predetermined flag value. The flag value indicates that the data are in an invalid state. Load instructions of the programs are instrumented to check if data loaded from the shared data structure are different than the predetermined flag value. The load instructions are executed if the data are different than the predetermined flag value. Otherwise, miss handling code is executed before the load instructions are executed.
-
Citations
12 Claims
-
1. 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, a software implemented method for identifying valid load accesses to shared data stored in the memories by programs executing in the workstations, comprising the steps of:
-
designating a set of the addresses of the memories as virtual shared addresses to store shared data; allocating, by a particular one of the programs, a portion of the virtual shared addresses to store a shared data structure as one or more blocks accessible by the programs executing in any of the processors, each block including an integer number of lines, each line including a predetermined number of bytes; instrumenting the particular program to initialize the bytes allocated for the shared data structure to a predetermined flag value to indicate an invalid state of the shared data; instrumenting load instructions of the programs to check if data loaded from the shared data structure are different than the predetermined flag value; and executing the load instruction if the data are different than the predetermined flag value. - View Dependent Claims (2, 3, 4)
-
-
5. An article of manufacture for detecting valid load accesses to a shared data structure, comprising:
-
a computer readable storage medium; and computer programming stored on the storage medium; wherein said stored computer programming is configured to be readable from said computer readable storage medium by a computer and thereby cause the computer to operate so as to; store the shared data structure on a virtual disks the shared data structure including a plurality of lines, each of the plurality of lines including a validity flag; initialize the validity flag in each of the plurality of lines to be in one of a first state and a second slate; and execute a load instruction to load one of the plurality of lines; wherein the load instruction is executed if the validity flag associated with the one of the plurality of lines to be loaded is in a first state. - View Dependent Claims (6, 7)
-
-
8. A system for detecting valid load accesses to a shared data structure, the system comprising:
-
a plurality of memory devices; a virtual disk, portions of the plurality of memory devices forming the virtual disk; a data structure stored on the virtual disk, the data structure including a pluralism of lines, each of the plurality of lines including a validity flag; a processor configured to load at least one of the plurality of lines only if the validity flag associated with the at least one of the plurality of lines is in a valid state. - View Dependent Claims (9, 10, 11, 12)
-
Specification