Interface for a security coprocessor
First Claim
1. A method comprising:
- retrieving, by a request unit, a number of requests for security operations from a host memory, wherein the number of requests are in an order within the host memory;
distributing, by the request unit, the number of requests for the security operations to a number of execution units, wherein the distribution is based on availability of the number of execution units;
processing the number of requests for the security operations by the number of execution units; and
outputting results of the number of requests for the security operations to locations within the host memory, wherein an order of outputting of the results can be different from the order of the requests within the host memory.
11 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for processing security operations are described. In one embodiment, a processor includes a number of execution units to process a number of requests for security operations. The number of execution units are to output the results of the number of requests to a number of output data structures associated with the number of requests within a remote memory based on pointers stored in the number of requests. The number of execution units can output the results in an order that is different from the order of the requests in a request queue. The processor also includes a request unit coupled to the number of execution units. The request unit is to retrieve a portion of the number of requests from the request queue within the remote memory and associated input data structures for the portion of the number of requests from the remote memory. Additionally, the request unit is to distribute the retrieved requests to the number of execution units based on availability for processing by the number of execution units.
-
Citations
46 Claims
-
1. A method comprising:
-
retrieving, by a request unit, a number of requests for security operations from a host memory, wherein the number of requests are in an order within the host memory;
distributing, by the request unit, the number of requests for the security operations to a number of execution units, wherein the distribution is based on availability of the number of execution units;
processing the number of requests for the security operations by the number of execution units; and
outputting results of the number of requests for the security operations to locations within the host memory, wherein an order of outputting of the results can be different from the order of the requests within the host memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method executing on a host processor, the method comprising:
-
storing a number of requests for security operations within a request queue within a host memory, wherein the number of requests are in an order within the request queue;
storing data related to the number of requests for security operations into a number of input data structures within the host memory;
allocating a number of output data structures within the host memory, wherein a coprocessor is to write results of the number of requests for the security operations into the number of output data structures, wherein the coprocessor can write the results in an order that is different from the order of the requests within the request queue; and
for each of the number of requests, allocating a thread for execution on the host processor, wherein the thread periodically checks a value of a completion code stored in the output data structure for the associated request, the completion code to indicate that the request is completed by the coprocessor. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A processor comprising:
-
a number of execution units to process a number of requests for security operations, wherein the number of execution units are to output the results of the number of requests to a number of output data structures associated with the number of requests within a remote memory based on pointers stored in the number of requests and wherein the number of execution units can output the results in an order that is different from the order of the requests in a request queue; and
a request unit coupled to the number of execution units, wherein the request unit is to retrieve a portion of the number of requests from the request queue within the remote memory and associated input data structures for the portion of the number of requests from the remote memory and wherein the request unit is to distribute the retrieved requests to the number of execution units based on availability for processing by the number of execution units. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A system comprising:
-
a host processor coupled to a system bus;
a host memory coupled to the system bus, wherein the host memory is to store, a request queue to include a number of requests for security operations, wherein the number of requests are in an order within the request queue;
a number of input data structures to include data associated with the number of requests; and
a number of output data structures to include results from processing of the number of requests; and
a coprocessor coupled to the system bus, wherein the coprocessor comprises, a number of execution units to process the number of requests for security operations, wherein the number of execution units are to output the results of the number of requests to the number of output data structures associated with the number of requests based on pointers stored in the number of requests and wherein the number of execution units can output the results in an order that is different from the order of the requests in the request queue; and
a request unit coupled to the number of execution units, wherein the request unit is to retrieve a portion of the number of requests from the request queue and associated input data structures for the portion of the number of requests from host memory and wherein the request unit is to distribute the retrieved requests to the number of execution units based on availability for processing by the number of execution units. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
-
31. A machine-readable medium that provides instructions, which when executed by a machine, causes the machine to perform operations comprising:
-
retrieving, by a request unit, a number of requests for security operations from a host memory, wherein the number of requests are in an order within the host memory;
distributing, by the request unit, the number of requests for the security operations to a number of execution units, wherein the distribution is based on availability of the number of execution units;
processing the number of requests for the security operations by the number of execution units; and
outputting results of the number of requests for the security operations to locations within the host memory, wherein an order of outputting of the results can be different from the order of the requests within the host memory. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. A machine-readable medium that provides instructions, which when executed by a host processor, causes the host processor to perform operations comprising:
-
storing a number of requests for security operations within a request queue within a host memory, wherein the number of requests are in an order within the request queue;
storing data related to the number of requests for security operations into a number of input data structures within the host memory;
allocating a number of output data structures within the host memory, wherein a coprocessor is to write results of the number of requests for the security operations into the number of output data structures, wherein the coprocessor can write the results in an order that is different from the order of the requests within the request queue; and
for each of the number of requests, allocating a thread for execution on the host processor, wherein the thread periodically checks a value of a completion code stored in the output data structure for the associated request, the completion code to indicate that the request is completed by the coprocessor. - View Dependent Claims (42, 43, 44, 45, 46)
-
Specification