Flexible architecture and instruction for advanced encryption standard (AES)
First Claim
Patent Images
1. An apparatus comprising:
- a microprocessor, the microprocessor comprising;
an execution unit, the execution unit comprising a plurality of execution ports, each execution port having an execution port number;
a key scheduler, the key scheduler to generate a round key for an Advanced Encryption Standard (AES) round associated with an AES round key operation based on a received key;
AES round logic to perform one AES round operation to compute a result of an AES round instruction, the AES round instruction including a first operand to provide an input state and a second operand to provide the round key for the AES round operation, the result stored in a register file to provide the input state for a next AES round instruction or a last AES round instruction; and
wherein the AES round logic issues the AES round instruction to a specified execution port number of the execution unit.
1 Assignment
0 Petitions
Accused Products
Abstract
A flexible instruction set for a general purpose processor is provided. The instruction set includes instructions to perform a “one round” pass for encryption or decryption and also includes instructions to perform key generation. An immediate may be used to indicate round number and key size for key generation for 128/192/256 bit keys. The flexible instruction set enables full use of pipelining capabilities because it does not require tracking of implicit registers.
65 Citations
23 Claims
-
1. An apparatus comprising:
-
a microprocessor, the microprocessor comprising; an execution unit, the execution unit comprising a plurality of execution ports, each execution port having an execution port number; a key scheduler, the key scheduler to generate a round key for an Advanced Encryption Standard (AES) round associated with an AES round key operation based on a received key; AES round logic to perform one AES round operation to compute a result of an AES round instruction, the AES round instruction including a first operand to provide an input state and a second operand to provide the round key for the AES round operation, the result stored in a register file to provide the input state for a next AES round instruction or a last AES round instruction; and wherein the AES round logic issues the AES round instruction to a specified execution port number of the execution unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
generating a round key for an Advanced Encryption Standard (AES) round associated with an AES round key operation based on a received key; performing one AES round operation to compute a result of an AES round instruction, the AES instruction including a first operand to provide an input state and a second operand to provide the round key for the AES round operation, the result stored in a register file to provide the input state for a next AES round instruction or a last AES round instruction; and issuing the AES round instruction to a specified execution port number of an execution unit, wherein the execution unit comprises a plurality of execution ports, each execution port having an execution port number. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer usable non-transitory medium including a computer readable code stored thereon having instructions, wherein the instructions, when executed by a microprocessor, results in a machine performing:
-
generating a round key for an Advanced Encryption Standard (AES) round associated with an AES round key operation based on a received key; performing one AES round operation to compute a result of an AES round instruction, the AES instruction including a first operand to provide an input state and a second operand to provide the round key for the AES round operation, the result stored in a register file to provide the input state for a next AES round instruction or a last AES round instruction; and issuing the AES round instruction to a specified execution port number of an execution unit, wherein the execution unit comprises a plurality of execution ports, each execution port having an execution port number. - View Dependent Claims (20, 21)
-
-
22. A system comprising:
-
a dynamic random access memory to store data and instructions; and a microprocessor coupled to said memory to execute the instructions, the microprocessor comprising; an execution unit, the execution unit comprising a plurality of execution ports, each execution port having an execution port number; a key scheduler, the key scheduler to generate a round key for an Advanced Encryption Standard (AES) round associated with an AES round key operation based on a received key; AES round logic to perform one AES round operation to compute a result of an AES round instruction, the AES round instruction including a first operand to provide an input state and a second operand to provide the round key for the AES round operation, the result stored in a register file to provide the input state for a next AES round instruction or a last AES round instruction; and wherein the AES round logic issues the AES round instruction to a specified execution port number of the execution unit. - View Dependent Claims (23)
-
Specification