Claims
- 1. A method of processing a cryptographic packet comprising:
receiving a first cryptographic packet in a host CPU; identifying a first set of data required to execute the first cryptographic packet; transferring the first cryptographic packet and the required first set of data to a cryptographic co-processor; executing the first cryptographic packet in the cryptographic co-processor; notifying the host CPU that the execution of the first cryptographic packet is complete; and receiving the executed first cryptographic packet in the host CPU.
- 2. The method of claim 1, wherein identifying the first set of data required to execute the first cryptographic packet includes identifying the required first set of data in a first control word.
- 3. The method of claim 2, wherein the control word includes instructions for the crypto co-processor.
- 4. The method of claim 1, wherein transferring the first cryptographic packet and the required first set of data to the cryptographic co-processor includes transferring the first cryptographic packet and the required first set of data through a control queue.
- 5. The method of claim 4, wherein identifying the first set of data required to execute the first cryptographic packet includes identifying the required first set of data in a first control word and wherein the first control word is located in the control queue.
- 6. The method of claim 5, wherein the first control word identifies a first storage location of the first cryptographic packet and a second storage location of the required first set of data.
- 7. The method of claim 5, wherein notifying the host CPU that the execution of the first cryptographic packet is complete includes modifying a field in the first control word.
- 8. The method of claim 7, wherein modifying the field in the first control word includes identifying a third location of an execution result of the executed first cryptographic packet.
- 9. The method of claim 8, wherein receiving the executed first cryptographic packet in the host CPU includes the host CPU retrieving the execution result from the third location identified by the first control word.
- 10. The method of claim 1, wherein transferring the first cryptographic packet and the required first set of data to the cryptographic co-processor includes:
receiving a subsequent packet in the host CPU; and executing the subsequent packet in the host CPU.
- 11. The method of claim 10, wherein the subsequent packet is a second cryptographic packet and executing the subsequent packet in the host CPU includes:
identifying a second set of data required to execute the second cryptographic packet; transferring the second cryptographic packet and the required second set of data to the cryptographic co-processor; executing the second cryptographic packet in the cryptographic co-processor; notifying the host CPU that the execution of the second cryptographic packet is complete; and receiving the executed second cryptographic packet in the host CPU.
- 12. The method of claim 11, wherein the second cryptographic packet is executed in the cryptographic co-processor substantially in parallel with executing the first cryptographic packet.
- 13. The method of claim 11, wherein the second cryptographic packet is executed in the cryptographic co-processor in series with executing the first cryptographic packet.
- 14. The method of claim 10, wherein the subsequent packet is a second cryptographic packet and executing the subsequent packet in the host CPU includes:
identifying a second set of data required to execute the second cryptographic packet; transferring the second cryptographic packet and the required second set of data to the cryptographic co-processor via an interface; executing the second cryptographic packet in the cryptographic co-processor substantially in parallel with executing the first cryptographic packet; notifying the host CPU that the execution of the second cryptographic packet is complete; and receiving the executed second cryptographic packet in the host CPU.
- 15. The method of claim 1, wherein notifying the host CPU that the execution of the first cryptographic packet is complete includes sending an interrupt request to the CPU.
- 16. A microprocessor comprising:
a host CPU; a cryptographic co-processor; and a control queue coupled to the host CPU and the cryptographic co-processor.
- 17. The system of claim 16, wherein the cryptographic co-processor includes a plurality of hardware units.
- 18. The system of claim 17, wherein the plurality of hardware units includes one or more crypto units that are optimized to perform a selected encryption process.
- 19. The system of claim 16, wherein the control queue is a storage location in the microprocessor.
- 20. The system of claim 16 further comprising an interface coupled between the host CPU and the cryptographic co-processor.
- 21. The system of claim 20, wherein the interface is capable of transferring an instruction from the host CPU to the cryptographic co-processor.
- 22. The system of claim 20, wherein the interface includes a plurality of hardware registers.
- 23. A method of processing a cryptographic packet comprising:
receiving a first cryptographic packet in a host CPU; identifying a first set of data required to execute the first cryptographic packet in a first control word, the first control word being located in a control queue and includes:
identifying a first storage location of the first cryptographic packet; and identifying a second storage location of the required first set of data; transferring the first cryptographic packet and the required first set of data to a cryptographic co-processor; executing the first cryptographic packet in the cryptographic co-processor; modifying a field in the first control word to notify the host CPU that the execution of the first cryptographic packet is complete including:
identifying a third location of an execution result of the executed first cryptographic packet; and retrieving the execution result, wherein the host CPU retrieves the execution result from the third location identified by the first control word.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to commonly owned U.S. patent application Ser. No. 10/273,718 filed on Oct. 18, 2002 and entitled “Stream Processor with Cryptographic Co-Processor,” which is incorporated herein by reference in its entirety.