EFFICIENT HARDWARE INSTRUCTIONS FOR SINGLE INSTRUCTION MULTIPLE DATA PROCESSORS
First Claim
1. A processor that stores, in a bit vector within the processor, results of a comparison between values in a first set of SIMD subregisters and values in a corresponding second set of SIMD subregisters:
- wherein the first set of SIMD subregisters are contiguous in a first SIMD register;
wherein the second set of SIMD subregisters are contiguous in a second SIMD register;
wherein the processor is configured to respond to one or more instructions by;
setting a bit in the bit vector to “
1”
for each subregister, in the first set of SIMD subregisters, that stores a value that satisfies a comparative operator with respect to the value stored in a corresponding subregister, of the second set of SIMD subregisters.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for efficiently processing data in various formats in a single instruction multiple data (“SIMD”) architecture is presented. Specifically, a method to unpack a fixed-width bit values in a bit stream to a fixed width byte stream in a SIMD architecture is presented. A method to unpack variable-length byte packed values in a byte stream in a SIMD architecture is presented. A method to decompress a run length encoded compressed bit-vector in a SIMD architecture is presented. A method to return the offset of each bit set to one in a bit-vector in a SIMD architecture is presented. A method to fetch bits from a bit-vector at specified offsets relative to a base in a SIMD architecture is presented. A method to compare values stored in two SIMD registers is presented.
-
Citations
20 Claims
-
1. A processor that stores, in a bit vector within the processor, results of a comparison between values in a first set of SIMD subregisters and values in a corresponding second set of SIMD subregisters:
-
wherein the first set of SIMD subregisters are contiguous in a first SIMD register; wherein the second set of SIMD subregisters are contiguous in a second SIMD register; wherein the processor is configured to respond to one or more instructions by; setting a bit in the bit vector to “
1”
for each subregister, in the first set of SIMD subregisters, that stores a value that satisfies a comparative operator with respect to the value stored in a corresponding subregister, of the second set of SIMD subregisters. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
storing results of a comparison between values in a first set of SIMD subregisters to values in a second set of SIMD subregisters in a bit vector; wherein the first set of SIMD subregisters are contiguous in a first SIMD register; wherein the second set of SIMD subregisters are contiguous in a second SIMD register; wherein storing results comprises; setting a bit in the bit vector to “
1”
for each subregister with a value stored in the first set of SIMD subregisters that satisfies a comparative operator with the value in a corresponding subregister in the second set of SIMD subregisters. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification