IP Library Granted Patent US 12664114
Granted Patent B2
US 12664114 · App. 18/749,130 · Granted Jun 23, 2026

Highly scalable accelerator

Inventors: Philip R. Lantz (Cornelius, OR); Sanjay Kumar (Hillsboro, OR); Rajesh M. Sankaran (Portland, OR); Saurabh Gayen (Portland, OR)
Assignee: Intel Corporation
G06F13/364G06F9/5027G06F13/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12664114
App. No.
18/749,130
Granted
Jun 23, 2026
Kind
B2
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.

Claims (38)

1 . 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.

2 . The apparatus of claim 1 , wherein the completion record is to indicate that processing of the work descriptor was successful and/or is to indicate an error associated with processing of the work descriptor.

3 . The apparatus of claim 2 , wherein the error associated with processing of the work descriptor comprises a page fault.

4 . The apparatus of claim 3 , wherein the completion record is to include an indication of an address at which the page fault occurred.

5 . The apparatus of claim 1 , wherein a first work queue is to be allocated in the memory to store a first subset of the work descriptors and a second work queue is to be allocated in the memory to store a second subset of the work descriptors.

6 . The apparatus of claim 5 , wherein the work descriptor is to be stored in the first work queue and wherein the first work queue is dedicated to the corresponding client.

7 . The apparatus of claim 6 , wherein the second work queue is to be shared by multiple clients of the plurality of clients, the second work queue to have at least a first work submission portal and a second work submission portal.

8 . The apparatus of claim 7 , wherein the first work submission portal is to receive work requests having a lower priority than work requests to be received by the second submission portal.

9 . The apparatus of claim 7 , wherein the first work submission portal is configured to accept work requests only up to a threshold amount of the capacity of the second work queue.

10 . The apparatus of claim 1 , further comprising:

a processor comprising a plurality of cores coupled to the circuitry to execute work, wherein software is to be executed by one or more cores to implement the plurality of clients.

11 . The apparatus of claim 1 , wherein the work descriptor is to include one or more entries to indicate results of a previous work request.

12 . 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.

13 . The non-transitory machine-readable medium of claim 12 , wherein the completion record is to indicate that processing of the work descriptor was successful and/or is to indicate an error associated with processing of the work descriptor.

14 . The non-transitory machine-readable medium of claim 13 , wherein the error associated with processing of the work descriptor comprises a page fault.

15 . The non-transitory machine-readable medium of claim 14 , wherein the completion record is to include an indication of an address at which the page fault occurred.

16 . The non-transitory machine-readable medium of claim 12 , wherein a first work queue is to be allocated in the memory to store a first subset of the work descriptors and a second work queue is to be allocated in the memory to store a second subset of the work descriptors.

17 . The non-transitory machine-readable medium of claim 16 , wherein the work descriptor is to be stored in the first work queue and wherein the first work queue is dedicated to the corresponding client.

18 . The non-transitory machine-readable medium of claim 17 , wherein the second work queue is to be shared by multiple clients of the plurality of clients, the second work queue to have at least a first work submission portal and a second work submission portal.

19 . The non-transitory machine-readable medium of claim 18 , wherein the first work submission portal is to receive work requests having a lower priority than work requests to be received by the second submission portal.

20 . The non-transitory machine-readable medium of claim 18 , wherein the first work submission portal is configured to accept work requests only up to a threshold amount of the capacity of the second work queue.