IP Library Granted Patent US 11,106,613
Granted Patent B2
US 11,106,613 · App. 15/940,128 · Granted Aug 31, 2021

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 11,106,613
App. No.
15/940,128
Granted
Aug 31, 2021
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 (29)

1. An apparatus comprising:

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;

wherein the work requests are to be dispatched to the plurality of engines from a plurality of work queues, the work queues to store a work descriptor per work request, each work descriptor to include an identifier of the corresponding client, a privilege of the corresponding client, an interrupt handle designating an entry in an interrupt message table, and all other information needed to perform a corresponding work request,

wherein the apparatus validates the interrupt handle using a process address space identifier to ensure the corresponding client is allowed to use the interrupt handle.

2. The apparatus of claim 1 , wherein the work descriptor is to include results of a previous work request.

3. The apparatus of claim 1 , wherein the work descriptor is to include interrupt message information.

4. The apparatus of claim 1 , wherein the work descriptor is to include a pointer to a completion record.

5. The apparatus of claim 4 , wherein the completion record is to include at least one of error status, an address at which a page fault occurred, and a measure of work completed before an error or page fault occurred.

6. The apparatus of claim 4 , wherein the completion record is to include results of the work request.

7. The apparatus of claim 1 , wherein at least one of the plurality of work queues is to be shared by at least two of the plurality of clients.

8. The apparatus of claim 7 , wherein the at least one of the plurality of work queues is to have at least a first work submission portal and a second work submission portal.

9. The apparatus of claim 8 , 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.

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

11. The apparatus of claim 10 , wherein the threshold is configurable.

12. The apparatus of claim 1 , wherein one or more of the plurality of work queues are to be grouped with one or more of the plurality of engines to form a plurality of work groups, wherein work requests are to be dispatched from each work queue to one or more engines in a corresponding work group.

13. The apparatus of claim 12 , wherein the work groups are configurable.

14. The apparatus of claim 13 , wherein availability of resources for processing work requests is to be controlled by assigning credits representing the resources to each work group.

15. A method comprising:

receiving, by a device, one of a plurality of work requests from one of a plurality of clients; and

dispatching, from one of a plurality of work queues, the one of the plurality of work requests to one of a plurality of engines;

wherein the work queues are to store a work descriptor per work request, each work descriptor to include an identifier of the corresponding client, a privilege of the corresponding client, an interrupt handle designating an entry in an interrupt message table, and all other information needed to perform a corresponding work request,

wherein the device validates the interrupt handle using a process address space identifier to ensure the corresponding client is allowed to use the interrupt handle.

16. The method of claim 15 , further comprising notifying, by the device in response to a page fault associated with the one of the plurality of work requests, the one of the plurality of clients.

17. A system comprising:

a processor to execute a client;

a co-processor to perform a work request from the client; and

wherein the client is to submit the work request to the co-processor through a work queue, the work queues to store a work descriptor corresponding to the work request, the work descriptor to include an identifier of the corresponding client, a privilege of the corresponding client, an interrupt handle designating an entry in an interrupt message table, and all other information needed to perform a corresponding work request,

wherein the co-processor validates the interrupt handle using a process address space identifier to ensure the corresponding client is allowed to use the interrupt handle.

18. The system of claim 17 , wherein the co-processor is to perform a plurality of work requests from a plurality of clients, wherein the co-processor is capable of performing additional work requests for additional clients without storing additional client state within the co-processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2018
From: LANTZ, PHILIP R.; KUMAR, SANJAY; SANKARAN, RAJESH M.; GAYEN, SAURABH
To: INTEL CORPORATION
Reel/Frame 045745/0700 →
Continuity (1)
Related Publication 20190303324A1 · Oct 3, 2019
Cited By (1)
US 12,632,290