Synchronization techniques in a multithreaded environment
First Claim
1. A method in a computer system for accessing a buffer of data, the method comprising:
- defining a write pointer to point to a location within the buffer;
when adding data to the buffer;
fetching the write pointer;
adding an indication of a size of the data to the write pointer; and
storing the data into the buffer starting at a location indicated by the fetched write pointer; and
setting the synchronization access mode of the write pointer to be either normal or sync to effect the behavior of adding data to the buffer.
4 Assignments
0 Petitions
Accused Products
Abstract
Various techniques for manipulating data using access states of memory, access control fields of pointers and operations, and exception raising and exception trapping in a multithreaded computer system. In particular, the techniques include synchronization support for a thread blocked in a word, demand evaluation of values, parallel access of multiple threads to a list, synchronized and unsynchronized access to a data buffer, use of forwarding to avoid checking for an end of a buffer, use of sentinel word to detect access past a data structure, concurrent access to a word of memory using different synchronization access modes, and use of trapping to detect access to restricted memory.
-
Citations
55 Claims
-
1. A method in a computer system for accessing a buffer of data, the method comprising:
-
defining a write pointer to point to a location within the buffer;
when adding data to the buffer;
fetching the write pointer;
adding an indication of a size of the data to the write pointer; and
storing the data into the buffer starting at a location indicated by the fetched write pointer; and
setting the synchronization access mode of the write pointer to be either normal or sync to effect the behavior of adding data to the buffer. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method in a computer system for accessing data, the method comprising:
-
defining a pointer to point to a location within the data, the pointer having a synchronization access mode;
setting the synchronization access mode of the pointer to be either unsynchronized or synchronized to effect a desired behavior of accessing the data;
allowing accessing code to access the data using the pointer with the current setting of the synchronization access mode;
changing the synchronization access mode of the pointer to effect the desired behavior of accessing the data; and
allowing accessing code to access the data using the pointer with the changed setting of the synchronization access mode. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method in a computer system for reading from a buffer of data, the method comprising:
-
defining a pointer to point to a location within the buffer, the pointer having a synchronization access mode;
setting the synchronization access mode of the pointer to be either normal or sync to effect a desired behavior of accessing the buffer; and
under control of accessing code, reading from a location within the buffer using the pointer wherein a behavior of the accessing code depends on the setting of the synchronization access mode of the pointer and the behavior of the accessing code can be changed without modifying the accessing code. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
-
31. A method in a computer system for writing to a buffer of data, the method comprising:
-
defining a pointer to point to a location within the buffer, the pointer having a synchronization access mode;
setting the synchronization access mode of the pointer to be either normal or sync to effect a desired behavior of accessing the buffer; and
under control of accessing code, writing to a location within the buffer using the pointer wherein behavior of the accessing code depends on the setting of the synchronization access mode of the pointer and can be changed without modifying the accessing code. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38)
-
-
39. A computer system for accessing data, comprising:
-
a buffer of data;
a read pointer and a write pointer that point to locations within the buffer, each pointer having a synchronization access mode being set to either unsynchronized or synchronized to effect a desired behavior of accessing the buffer of data;
a plurality of accessing programs that access the buffer of data using the read and write pointers; and
means for changing the setting of the synchronization access mode of a pointer to effect a change in the desired behavior of accessing the buffer of data without modifying the accessing programs. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A computer system for accessing data, comprising:
-
means for storing data within a buffer;
means for pointing to locations within the buffer, the pointing means having a synchronization access mode;
means for changing the synchronization access mode of the pointing means; and
means for accessing the data of the buffer using the pointing means wherein the accessing behavior depends on the synchronization access mode of the pointing means. - View Dependent Claims (50, 51, 52, 53, 54, 55)
-
Specification