System for multi threaded multi processor sharing of asynchronous hardware units
First Claim
1. In a computer system, a method of sharing a hardware resource between a plurality of threads, said method comprising:
- accessing a request to use said hardware resource, said request received from a first thread of said plurality of threads;
determining, based upon a first portion of a data structure, whether said hardware resource is available for use by said first thread;
if said hardware resource is determined to be available for use by said first thread;
said first thread setting said first portion of said data structure to indicate that said hardware resource is unavailable for use by a second thread of said plurality of threads; and
said first thread setting a second portion of said data structure to signal that said hardware resource is ready for use by said first thread; and
if said hardware resource is determined to be unavailable for use by said first thread;
causing said first thread to wait until said hardware resource is available for use by said first thread; and
in response to said hardware resource becoming available, setting said first portion of said data structure to indicate that said hardware resource is available, wherein said setting said first portion to indicate that said hardware resource is available is performed by a hardware aspect of said computer system, wherein said hardware aspect includes said hardware resource.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and system for sharing a hardware resource in a computer system running at least one software process having multiple threads. A lock_indicator is provided in data structures within the computer system. A request is received to use the hardware resource by one of the threads that is defined to be a requesting tread. Based on the lock_indicator, it is determined whether the hardware resource is available for use by the requesting thread. If this indicates that the hardware resource is available, the lock_indicator is set under control of the hardware resource to instead indicate that the hardware resource is unavailable, and a go_indicator signals to indicate that use of the hardware resource for the request can now proceed.
-
Citations
16 Claims
-
1. In a computer system, a method of sharing a hardware resource between a plurality of threads, said method comprising:
-
accessing a request to use said hardware resource, said request received from a first thread of said plurality of threads; determining, based upon a first portion of a data structure, whether said hardware resource is available for use by said first thread; if said hardware resource is determined to be available for use by said first thread; said first thread setting said first portion of said data structure to indicate that said hardware resource is unavailable for use by a second thread of said plurality of threads; and said first thread setting a second portion of said data structure to signal that said hardware resource is ready for use by said first thread; and if said hardware resource is determined to be unavailable for use by said first thread; causing said first thread to wait until said hardware resource is available for use by said first thread; and in response to said hardware resource becoming available, setting said first portion of said data structure to indicate that said hardware resource is available, wherein said setting said first portion to indicate that said hardware resource is available is performed by a hardware aspect of said computer system, wherein said hardware aspect includes said hardware resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a computer system, a hardware locking system for sharing a hardware resource between a plurality of threads, said hardware locking system comprising:
-
a memory comprising a data structure; means for accessing a request to use said hardware resource, said request received from a first thread of said plurality of threads; means for determining, based upon a first portion of said data structure, whether said hardware resource is available for use by said first thread; said first thread setting, if said hardware resource is determined to be available for use by said first thread, said first portion of said data structure to indicate that said hardware resource is unavailable for use by a second thread of said plurality of threads; said first thread setting, if said hardware resource is determined to be available for use by said first thread, a second portion of said data structure signal to indicate that said hardware resource is ready for use by said first thread; means for causing said first thread to wait until said hardware resource is available for use by said first thread if said hardware resource is determined to be unavailable for use by said first thread; and a hardware aspect setting, in response to said hardware resource becoming available, said first portion of said data structure to indicate that said hardware resource is available, wherein said hardware aspect includes said hardware resource. - View Dependent Claims (12, 13, 14, 15, 16)
-
Specification