INSTRUCTION AND LOGIC TO PROVIDE SIMD SECURE HASHING ROUND SLICE FUNCTIONALITY
First Claim
1. A processor comprising:
- a decode stage to decode a first instruction for a SIMD secure hashing algorithm round slice, the first instruction specifying a source data operand set, a message-plus-constant operand set, a round-slice portion of the secure hashing algorithm round, and a rotator set portion of rotate settings; and
one or more execution units, responsive to the decoded first instruction, to;
perform a secure hashing round-slice set of round iterations upon the source data operand set, applying the message-plus-constant operand set and the rotator set; and
store a result of the first instruction in a SIMD destination register.
1 Assignment
0 Petitions
Accused Products
Abstract
Instructions and logic provide SIMD secure hashing round slice functionality. Some embodiments include a processor comprising: a decode stage to decode an instruction for a SIMD secure hashing algorithm round slice, the instruction specifying a source data operand set, a message-plus-constant operand set, a round-slice portion of the secure hashing algorithm round, and a rotator set portion of rotate settings. Processor execution units, are responsive to the decoded instruction, to perform a secure hashing round-slice set of round iterations upon the source data operand set, applying the message-plus-constant operand set and the rotator set, and store a result of the instruction in a SIMD destination register. One embodiment of the instruction specifies a hash round type as one of four MD5 round types. Other embodiments may specify a hash round type by an immediate operand as one of three SHA-1 round types or as a SHA-2 round type.
43 Citations
31 Claims
-
1. A processor comprising:
-
a decode stage to decode a first instruction for a SIMD secure hashing algorithm round slice, the first instruction specifying a source data operand set, a message-plus-constant operand set, a round-slice portion of the secure hashing algorithm round, and a rotator set portion of rotate settings; and one or more execution units, responsive to the decoded first instruction, to; perform a secure hashing round-slice set of round iterations upon the source data operand set, applying the message-plus-constant operand set and the rotator set; and store a result of the first instruction in a SIMD destination register. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A processor comprising:
-
a vector register comprising a plurality of m data fields to store values of m data elements; a decode stage to decode a first instruction for executing a hash-round-slice of a hash algorithm, the hash-round-slice having a plurality of iterations less that a total number of round iterations of the hash algorithm, the first instruction specifying;
an input state source operand specifying the vector register, an immediate operand, and a message/constant combinations operand; andan execution unit coupled with the register file, and responsive to the decoded first instruction, to receive the input state and the message/constant combinations, and to generate an output state for each iteration of the plurality of iterations, said execution unit comprising; a multiplexer to select a message/constant combination from the message/constant combinations operand according to an iteration count of the plurality of iterations; one or more functional blocks to perform logical combinations of a portion of the m data elements of the input state source operand according to a hash round type specified by the first instruction; one or more adders to sum at least one or more input state value, the selected message/constant combination, and a portion of logical combinations output from said one or more functional blocks; an output state latch to store an output state generated as a result of an iteration; and a bypass from the output state latch to bypass the output state to the input state for each next iteration of the plurality of iterations. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
storing in a first portion of a plurality of m data fields of a first vector register, an input state source operand of a hash algorithm; storing in a second portion of the plurality of m data fields of a second vector register, a message-plus-constant operand set of the hash algorithm; executing, in a processor, a SIMD instruction for a hash-round-slice having a plurality of iterations less that a total number of round iterations of the hash algorithm; and for each iteration of the hash-round-slice, generating a result of an iteration, storing an output state generated as the result of the iteration, and bypassing the output state to the input state for each next iteration of the plurality of iterations. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 31)
-
-
29. A processing system comprising:
-
a memory to store a first instruction for a SIMD secure hashing algorithm round slice; and a processor comprising; an instruction fetch stage to fetch the first instruction; a decode stage to decode the first instruction, the first instruction specifying a source data operand set, a message-plus-constant operand set, a round-slice portion of the secure hashing algorithm round, and a rotator set portion of rotate settings; and an execution stage, responsive to the decoded first instruction, to; perform a secure hashing round-slice set of round iterations upon the source data operand set, applying the message-plus-constant operand set and the rotator set; and store a result of the first instruction in a SIMD destination register. - View Dependent Claims (30)
-
Specification