Highly scalable accelerator
AssigneeIntel Corporation
InventorsPhilip R. Lantz, Sanjay Kumar, Rajesh M. Sankaran, Saurabh Gayen
Life of this patent
Estimating the term…
Abstract
Embodiments of apparatuses, methods, and systems for highly scalable accelerators are described. In an embodiment, an apparatus includes an interface to receive a plurality of work requests from a plurality of clients and a plurality of engines to perform the plurality of work requests. The work requests are to be dispatched to the plurality of engines from a plurality of work queues. The work queues are to store a work descriptor per work request. Each work descriptor is to include all information needed to perform a corresponding work request.
Claims20
An apparatus, comprising:
- at least one control register to store an address associated with a work queue, the work queue to store a plurality of work descriptors submitted by one or more clients;
- circuitry to execute work indicated by a work descriptor of the plurality of work descriptors on behalf of the one or more clients, the work descriptor including a process address space identifier (PASID), an interrupt identifier, and a completion address;
- wherein, to execute the work, the circuitry is to:
- determine the PASID of a corresponding client of the plurality of clients;
- validate a correspondence between the PASID and the interrupt identifier;
- determine a corresponding entry of a message signaled interrupt (MSI) table in accordance with the interrupt identifier;
- perform one or more operations in accordance with the work descriptor;
- determine a memory location of a completion record based on the completion address;
- and
- store a completion status in the completion record.
A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform operations, comprising:
- storing an address associated with a work queue in a control register, the work queue to store work descriptors submitted by one or more clients;
- executing work indicated by the work descriptors on behalf of the one or more clients, wherein executing the work comprises:
- determining a process address space identifier (PASID) of a corresponding client of the plurality of clients;
- validating a correspondence between the PASID and the interrupt identifier;
- determining a corresponding entry of a message signaled interrupt (MSI) table in accordance with an interrupt identifier provided in the work descriptor;
- executing work indicated by the work descriptor;
- determining a memory location of a completion record based on a completion address provided in the work descriptor;
- and
- storing a completion status in the completion record.
Dependencies are inferred from the claim text.