Elimination of traps and atomics in thread synchronization

Electrical computers and digital data processing systems: input/ – Access locking

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S240000, C711S152000

Reexamination Certificate

active

06230230

ABSTRACT:

FIELD OF THE PRESENT INVENTION
The present invention relates to microprocessors, and more particularly, to locking of computer resources.
BACKGROUND
When different computer entities such as computer processes or threads share a computer resource (for example, data, code, or a piece of hardware), it may be desirable to allow one of the computer entities to lock a resource for a while to prevent some types of access to the resource by other computer entities. For example, if two or more threads share computer data, and one thread has started but not finished to modify the data when another thread is accessing the data, the other thread may get incorrect information from the data and/or the data could be corrupted by the two threads. Also, if one thread has started but not finished execution of a critical code section when another thread starts executing the same code section, execution errors may occur if, for example, the critical code section modifies the state of a data area, a hardware controller, or some other computer resource. Therefore, locking techniques have been provided to allow computer entities to lock computer resources.
It is desirable to provide fast techniques for locking of computer resources.
SUMMARY
The present invention provides elimination of traps and atomics in thread synchronization. Efficient and fast thread synchronization is provided. For example, thread synchronization can be efficient and fast in some frequently occurring situations, such as when a thread owns a computer resource (e.g., has a lock on a computer resource).
In one embodiment, a lock cache (e.g., four registers) that holds up to four values, each of which is a reference to a locked object (e.g., an address of the locked object) is provided. The lock cache maintains LOCKCOUNTs. A lockcachecheck instruction (e.g., lockcachecheck object_address, Rd) returns a first predetermined value if the object_address is stored in the lock_cache (e.g., the current thread executing on the processor owns the object). Otherwise, the lockcachecheck instruction returns a second predetermined value (e.g., the lock cache is not currently storing the object_address, and the current thread may or may not own the object, which can be determined based on an access to memory that is handled in software). For example, if the first predetermined value is returned, then processing can continue with the current instruction stream (the current thread owns the object). If the second predetermined value is returned, then processing can branch to a different set of instructions (e.g., to check a table in memory to determine whether the current thread owns the object, and if not, then the current thread can wait for the object to become available).
Other features and advantages of the present invention are described below.


REFERENCES:
patent: 4858116 (1989-08-01), Gillett, Jr. et al.
patent: 5117352 (1992-05-01), Falek
patent: 5321825 (1994-06-01), Song
patent: 5669002 (1997-09-01), Buch
patent: 5872980 (1999-02-01), Derrick et al.
patent: 5875485 (1999-02-01), Matsumoto

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Elimination of traps and atomics in thread synchronization does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Elimination of traps and atomics in thread synchronization, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Elimination of traps and atomics in thread synchronization will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2513675

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.