Vector Galois field multiply sum and accumulate instruction
First Claim
Patent Images
1. A computer program product for executing a machine instruction in a central processing unit, the computer program product comprising:
- a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising;
obtaining the machine instruction for execution, the machine instruction having associated therewith;
an opcode identifying a Vector Galois Field Multiply Sum and Accumulate operation;
a plurality of operands including a first operand, a second operand, a third operand, and a fourth operand; and
a control to specify a size of elements of the second operand and the third operand, wherein the control is specified by a mask associated with the machine instruction; and
executing the machine instruction, the executing comprising;
multiplying one or more elements of the second operand with one or more elements of the third operand using carryless multiplication to obtain a plurality of products;
performing a first mathematical operation on the plurality of products to obtain a first result;
performing a second mathematical operation on the first result and one or more selected elements of the fourth operand to obtain a second result; and
placing the second result in the first operand.
1 Assignment
0 Petitions
Accused Products
Abstract
A Vector Galois Field Multiply Sum and Accumulate instruction. Each element of a second operand of the instruction is multiplied in a Galois field with the corresponding element of the third operand to provide one or more products. The one or more products are exclusively ORed with each other and exclusively ORed with a corresponding element of a fourth operand of the instruction. The results are placed in a selected operand.
171 Citations
16 Claims
-
1. A computer program product for executing a machine instruction in a central processing unit, the computer program product comprising:
a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising; obtaining the machine instruction for execution, the machine instruction having associated therewith; an opcode identifying a Vector Galois Field Multiply Sum and Accumulate operation; a plurality of operands including a first operand, a second operand, a third operand, and a fourth operand; and a control to specify a size of elements of the second operand and the third operand, wherein the control is specified by a mask associated with the machine instruction; and executing the machine instruction, the executing comprising; multiplying one or more elements of the second operand with one or more elements of the third operand using carryless multiplication to obtain a plurality of products; performing a first mathematical operation on the plurality of products to obtain a first result; performing a second mathematical operation on the first result and one or more selected elements of the fourth operand to obtain a second result; and placing the second result in the first operand. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A computer system for executing a machine instruction in a central processing unit, the computer system comprising:
-
a memory; and a processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising; obtaining the machine instruction for execution, the machine instruction having associated therewith; an opcode identifying a Vector Galois Field Multiply Sum and Accumulate operation; a plurality of operands including a first operand, a second operand, a third operand, and a fourth operand; and a control to specify a size of elements of the second operand and the third operand, wherein the control is specified by a mask associated with the machine instruction; and executing the machine instruction, the executing comprising; multiplying one or more elements of the second operand with one or more elements of the third operand using carryless multiplication to obtain a plurality of products; performing a first mathematical operation on the plurality of products to obtain a first result; performing a second mathematical operation on the first result and one or more selected elements of the fourth operand to obtain a second result; and placing the second result in the first operand. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification