A DATA PROCESSING APPARATUS AND METHOD FOR PERFORMING LOCK-PROTECTED PROCESSING OPERATIONS FOR MULTIPLE THREADS
First Claim
1. A data processing apparatus for executing a plurality of threads, comprising:
- processing circuitry configured to perform processing operations required by said plurality of threads, said processing operations including a lock-protected processing operation with which a lock is associated, the lock needing to be acquired before the processing circuitry performs the lock-protected processing operation; and
baton maintenance circuitry configured to maintain a baton in association with the plurality of threads, the baton forming a proxy for the lock, and the baton maintenance circuitry being configured to allocate the baton between the plurality of threads;
the processing circuitry being configured to communicate with the baton maintenance circuitry so that, once the lock has been acquired for one of said plurality of threads, the processing circuitry performs the lock-protected processing operation for multiple threads of said plurality of threads before the lock is released, the baton maintenance circuitry being configured to identify a current thread amongst said multiple threads for which the lock-protected processing operation is to be performed by allocating the baton to that current thread.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing apparatus and method are provided for executing a plurality of threads. Processing circuitry performs processing operations required by the plurality of threads, the processing operations including a lock-protected processing operation with which a lock is associated, where the lock needs to be acquired before the processing circuitry performs the lock-protected processing operation. Baton maintenance circuitry is used to maintain a baton in association with the plurality of threads, the baton forming a proxy for the lock, and the baton maintenance circuitry being configured to allocate the baton between the threads. Via communication between the processing circuitry and the baton maintenance circuitry, once the lock has been acquired for one of the threads, the processing circuitry performs the lock-protected processing operation for multiple threads before the lock is released, with the baton maintenance circuitry identifying a current thread amongst the multiple threads for which the lock-protected processing operation is to be performed by allocating the baton to that current thread. The baton can hence be passed from one thread to the next, without needing to release and re-acquire the lock. This provides a significant performance improvement when performing lock-protected processing operations across multiple threads.
7 Citations
26 Claims
-
1. A data processing apparatus for executing a plurality of threads, comprising:
-
processing circuitry configured to perform processing operations required by said plurality of threads, said processing operations including a lock-protected processing operation with which a lock is associated, the lock needing to be acquired before the processing circuitry performs the lock-protected processing operation; and baton maintenance circuitry configured to maintain a baton in association with the plurality of threads, the baton forming a proxy for the lock, and the baton maintenance circuitry being configured to allocate the baton between the plurality of threads; the processing circuitry being configured to communicate with the baton maintenance circuitry so that, once the lock has been acquired for one of said plurality of threads, the processing circuitry performs the lock-protected processing operation for multiple threads of said plurality of threads before the lock is released, the baton maintenance circuitry being configured to identify a current thread amongst said multiple threads for which the lock-protected processing operation is to be performed by allocating the baton to that current thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26)
-
-
24. A method of executing a plurality of threads within a data processing apparatus, comprising:
-
performing processing operations required by said plurality of threads within processing circuitry of the data processing apparatus, said processing operations including a lock-protected processing operation with which a lock is associated, the lock needing to be acquired before the processing circuitry performs the lock-protected processing operation; maintaining a baton in association with the plurality of threads, the baton forming a proxy for the lock, and allocating the baton between the plurality of threads; and once the lock has been acquired for one of said plurality of threads, performing the lock-protected processing operation for multiple threads of said plurality of threads before the lock is released, and identifying to the processing circuitry a current thread amongst said multiple threads for which the lock-protected processing operation is to be performed by allocating the baton to that current thread.
-
-
25. A data processing apparatus for executing a plurality of threads, comprising:
-
processing means for performing processing operations required by said plurality of threads, said processing operations including a lock-protected processing operation with which a lock is associated, the lock needing to be acquired before the processing means performs the lock-protected processing operation; and baton maintenance means for maintaining a baton in association with the plurality of threads, the baton forming a proxy for the lock, and the baton maintenance means further for allocating the baton between the plurality of threads; the processing means for communicating with the baton maintenance means so that, once the lock has been acquired for one of said plurality of threads, the processing means performs the lock-protected processing operation for multiple threads of said plurality of threads before the lock is released, the baton maintenance means for identifying a current thread amongst said multiple threads for which the lock-protected processing operation is to be performed by allocating the baton to that current thread.
-
Specification