×

Apparatus and method for processing threads requiring resources

  • US 8,966,494 B2
  • Filed: 03/16/2012
  • Issued: 02/24/2015
  • Est. Priority Date: 03/16/2012
  • Status: Active Grant
First Claim
Patent Images

1. A data processing apparatus comprising:

  • processing circuitry configured to process operations of pending threads using resources accessible to said processing circuitry;

    thread handling circuitry configured to handle pending threads awaiting resources required for processing, wherein said thread handling circuitry comprises a thread buffer configured to buffer pending threads for which at least one resource is not available; and

    resource checking circuitry configured to check whether at least one resource required by a requesting pending thread from said thread handling circuitry is available, to forward said requesting pending thread to said processing circuitry for processing if said at least one resource is available, and if said at least one resource is not available, to request a lock to said at least one resource and to retain said requesting pending thread in said thread buffer of the thread handling circuitry, wherein the checking on the availability of a resource is performed upon being requested by a pending thread;

    wherein;

    said resource checking circuitry, responsive to determining that the resource is both unavailable and not already locked, is configured to set a lock for an unavailable resource, make the requesting pending thread a lock owning thread, and add the requesting pending thread to the thread buffer of the thread handling circuitry, wherein a locked resource which becomes available remains available until the lock associated with the current lock owning thread of the locked resource is removed;

    said resource checking circuitry is configured to on determining that a locked resource is unavailable for a subsequent pending thread which requires said locked resource and is not the current lock owning thread for said locked resource, set said subsequent pending thread as the lock owning thread for said locked resource, and add the subsequent pending thread to the thread buffer of the thread handling circuitry; and

    said resource checking circuitry, upon the availability of the resource, is configured to send at least one pending thread in the thread buffer to the processing circuitry for processing using the available resource, determine whether the processed pending thread is the current lock owning thread, and if so remove the lock associated with an available locked resource.

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