US 12,271,737 B2
Pair merge execution units for microinstructions
David Kravitz, Cambridge, MA (US); and David A. Carlson, Haslet, TX (US)
Assigned to Marvell Asia Pte, Ltd., Singapore (SG)
Filed by Cavium LLC, Santa Clara, CA (US)
Filed on Jan. 31, 2019, as Appl. No. 16/264,458.
Prior Publication US 2020/0249955 A1, Aug. 6, 2020
Int. Cl. G06F 9/38 (2018.01); G06F 7/76 (2006.01); G06F 9/22 (2006.01); G06F 9/30 (2018.01)
CPC G06F 9/3887 (2013.01) [G06F 7/762 (2013.01); G06F 9/226 (2013.01); G06F 9/30032 (2013.01); G06F 9/30036 (2013.01); G06F 9/30196 (2013.01)] 24 Claims
OG exemplary drawing
 
1. A method of executing instructions in a processor, said method comprising:
fetching an instruction comprising an opcode and a plurality of source operands, wherein each source operand of said plurality of source operands comprises a plurality of data units;
decoding said opcode to generate a plurality of control signals, wherein said plurality of control signals comprises a first signal, a second signal, and a third signal, wherein said first signal comprises a plurality of first values in respective first positions, wherein each value of said plurality of first values indicates a position in said each source operand of said plurality of source operands, wherein said second signal comprises a plurality of second values in respective second positions, wherein each value of said plurality of second values indicates a position in said each source operand of said plurality of source operands, wherein said third signal comprises a plurality of third values in respective third positions, wherein a first plurality of said third positions corresponds to said first positions and a second plurality of said third positions corresponds to said second positions, and wherein each value of said plurality of third values indicates a respective source operand of said plurality of source operands;
sending said plurality of control signals and said plurality of data units to an execution circuit; and
controlling said execution circuit with said plurality of control signals to:
for each of said first plurality of third positions, use the third value in the respective third position to select said respective source operand of said plurality of source operands and use the first value in the first position corresponding to said respective third position to select a first data unit from the selected respective source operand for a first permutation result; and
for each of said second plurality of third positions, use the third value in the respective third position to select said respective source operand of said plurality of source operands and use the second value in the second position corresponding to said respective third position to select a second data unit from the selected respective source operand for a second permutation result.