×

Data processing apparatus and method for performing lock-protected processing operations for multiple threads

  • US 10,423,467 B2
  • Filed: 05/19/2015
  • Issued: 09/24/2019
  • Est. Priority Date: 07/08/2014
  • Status: Active Grant
First Claim
Patent Images

1. A data processing apparatus for executing a plurality of threads, the data processing apparatus being coupled to memory via an interconnect, and 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 in memory before the processing circuitry performs the lock-protected processing operation;

    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; and

    a storage structure, separate from memory and associated with said plurality of threads, in which the baton maintenance circuitry is configured to maintain the baton;

    the processing circuitry being configured to communicate with the baton maintenance circuitry so that, once the lock has been acquired in memory 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 in memory, 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;

    wherein when the processing circuitry has performed the lock-protected processing operation for a thread, the processing circuitry is configured to issue a pass baton request to the baton maintenance circuitry, the baton maintenance circuitry being responsive to the pass baton request to determine whether there are any remaining threads amongst said multiple threads for which the lock-protected processing operation still needs to be performed, and if so, to allocate the baton to one of said remaining threads; and

    wherein each thread comprises a sequence of instructions, and for a thread that requires the lock-protected processing operation to be performed, the thread includes a pass baton instruction which is executed by the processing circuitry once the lock-protected processing operation has been performed for that thread, and which causes the processing circuitry to issue the pass baton request to the baton maintenance circuitry.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×