Data processing system and method of permutation with replication within a vector register file
First Claim
1. A method for combining, in accordance with a control vector, at least a first input vector and a second input vector to create an output vector, each vector comprising at least first and second vector elements, the method comprising the steps of:
- storing said first input vector;
storing said second input vector;
storing said control vector;
in response to the first vector element of said control vector, storing, as the first vector element of said output vector, a selected one of (1) the first vector element of the first input vector, (2) the second vector element of the first input vector, (3) the first vector element of the second input vector, or (4) the second vector element of the second input vector; and
in response to the second vector element of said control vector, storing, as the second vector element of said output vector, a selected one of (1) the first vector element of the first input vector, (2) the second vector element of the first input vector, (3) the first vector element of the second input vector, or (4) the second vector element of the second input vector.
9 Assignments
0 Petitions
Accused Products
Abstract
The data processing system of the present invention loads three input operands, including two input vectors and a control vector, into vector registers and performs a permutation of the two input vectors as specified by the control vector, and further stores the result of the operation as the output operand in an output register. The control vector consists of sixteen indices, each uniquely identifying a single byte of input data in either of the input registers, and can be specified in the operational code or be the result of a computation previously performed within the vector registers. The specification of the control vector allows a vector-matrix operation to be performed on the input vectors by rearranging or replicating the input operand bytes in the bytes of the output register as a function of the control vector. This system provides a highly efficient register loading mechanism for data vectors misaligned in memory, and allows the computation of a serially dependent chain of binary functions within the vector registers.
156 Citations
9 Claims
-
1. A method for combining, in accordance with a control vector, at least a first input vector and a second input vector to create an output vector, each vector comprising at least first and second vector elements, the method comprising the steps of:
-
storing said first input vector; storing said second input vector; storing said control vector; in response to the first vector element of said control vector, storing, as the first vector element of said output vector, a selected one of (1) the first vector element of the first input vector, (2) the second vector element of the first input vector, (3) the first vector element of the second input vector, or (4) the second vector element of the second input vector; and in response to the second vector element of said control vector, storing, as the second vector element of said output vector, a selected one of (1) the first vector element of the first input vector, (2) the second vector element of the first input vector, (3) the first vector element of the second input vector, or (4) the second vector element of the second input vector. - View Dependent Claims (2, 3)
-
-
4. A method for combining in an output vector, vector elements of a first input vector and a second input vector, selected in accordance with a control vector, each vector comprising at least first and second vector elements, the method comprising the steps of:
-
storing said first input vector; storing said second input vector; storing said control vector; selecting, in response to each vector element of said stored control vector, a respective one of the vector elements of said stored input vectors; and storing each of said selected vector elements as a respective one of the vector elements of said output vector, the output vector being the same size as the first input vector and the second input vector. - View Dependent Claims (5, 6)
-
-
7. An apparatus for combining, in accordance with a control vector, at least a first input vector and a second input vector to create an output vector, each vector comprising at least first and second vector elements, the apparatus comprising:
-
a first vector register for storing said first input vector; a second vector register for storing said second input vector; a third vector register for storing said control vector; a combination network coupled to the first vector register, to the second vector register and to the third vector register for selecting, in response to each vector element stored in said third vector, a respective one of vector elements stored in said first and said second vector registers; and a fourth vector register for storing each of said selected vector elements. - View Dependent Claims (8, 9)
-
Specification