EP1544738B1

Accelerator for multi-processing system and method

Abstract

This record has no abstract on file.

EP1544738B1, drawing sheet 1
Sheet 1 of 6

Term

Term ended

Expired 14 December 2024, 1.8 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

22 claims: 10 independent, 12 dependent

  1. 1
    A processing system (100) comprising:a plurality of processors (102a:102n) capable of executing an application comprising a plurality of threads and supporting hardware context switching, and wherein at least one of said processors is capable of hardware multithreading;a hardware concurrency engine (206) coupled to the plurality of processors (102a:102n), the concurrency engine (206) capable of managing a plurality of concurrency primitives that coordinate execution of the threads by the processors (102a:102n);and characterized in that : the concurrency engine (206) is further capable of scheduling execution of the threads by the processors (102a:102n)by stalling at least one of a read acknowledgement and a write acknowledgement destined for at least one of the processors.
  2. 3
    The processing system (100) of any preceding Claim, wherein the concurrency engine (206) is capable of enforcing concurrency semantics when managing the concurrency primitives, the semantics associated with at least one of:mutual exclusion, monitors, waiting and signaling conditions, timeout conditions, deferred conditions, priority elevation to avoid priority inversion in the monitors, priority queues, and operation ordering.
  3. 4
    The processing system (100) of any preceding Claim, wherein the concurrency engine (206) is further capable of maintaining thread descriptors for the threads, maintaining thread parent/child trees, and performing thread fork and thread join operations.
  4. 5
    The processing system (100) of any preceding Claim, further comprising:at least one memory (110);at least one programmable hardware processing engine (112);at least one interface to an external device (124);and a network (108) coupling the processors (102a:102n), the concurrency engine (206), the memory (110), the hardware processing engine (112), and the interface (124).
  5. 7
    The processing system (100) of any preceding Claim, wherein the plurality of processors (102a:102n) comprises homogenous processors in a symmetric multi-processing arrangement.
  6. 8
    A method comprising:executing an application comprising a plurality of threads using a plurality of processors (102a:102n) capable of supporting hardware context switching, and wherein at least one of said processors is capable of hardware multithreading;and managing a plurality of concurrency primitives that coordinate execution of the threads by the processors (102a:102n) using a hardware concurrency engine (206), the method characterized by : scheduling execution of the threads by the processors (102a:102n) using the concurrency engine (206) by stalling at least one of a read acknowledgement and a write acknowledgement destined for at least one of the processors.
  7. 11
    The processing system (100) of any of Claims 1 to 7, or the method of any of Claims 8 to 10, wherein:each of the plurality of concurrency primitives comprises an object;and each address encodes at least one of: an object index identifying one of the objects, an object type identifying a type associated with the identified object, and an operation type identifying a requested operation involving the identified object.
  8. 13
    The method of any of Claims 8 to 12, further comprising maintaining thread descriptors for the threads, maintaining thread parent/child trees, and performing thread fork and thread join operations using the concurrency engine (206).
  9. 14
    The processing system (100) of any of claims 1 to 7, 11 or 12, wherein the concurrency engine (206) further comprises:a command decoder (304) capable of decoding requests from the processors;a command processor (312) capable of executing operations associated with the decoded requests;a response formatter (306) capable of encoding results from the execution of the operations;and a memory (314) capable of storing information associated with a plurality of objects representing the concurrency primitives, each operation executed by the command processor (312) involving at least one of the objects, each request from the processors (102a: 102n) comprising at least one of a read operation and a write operation involving an address in an address space associated with the concurrency engine (206), the address encoding an identification of one of the objects and a requested operation.
  10. 20
    The apparatus (700) of any of Claims 17 to 19, wherein:the apparatus (700) is coupled to a network;and the processing system (100) is capable of performing at least one of packet forwarding and traffic management.