Source: https://patents.google.com/patent/US10372449B2/en
Timestamp: 2020-08-07 16:28:13
Document Index: 367584247

Matched Legal Cases: ['Application No. 201610875222', 'Application No. 101147505', 'Application No. 201180075847', 'Application No. 101147505', 'Application No. 201180075847', 'Application No. 201180075847']

US10372449B2 - Packed data operation mask concatenation processors, methods, systems, and instructions - Google Patents
US10372449B2
US10372449B2 US15/442,823 US201715442823A US10372449B2 US 10372449 B2 US10372449 B2 US 10372449B2 US 201715442823 A US201715442823 A US 201715442823A US 10372449 B2 US10372449 B2 US 10372449B2
US20170300327A1 (en
a decode unit to decode an instruction that is to specify a first packed data operation mask register of the set of packed data operation mask registers, that is to specify a second packed data operation mask register of the set of packed data operation mask registers, and that is to specify a third packed data operation mask register of the set of packed data operation mask registers, the first packed data operation mask register to store a first 8-bit packed data operation mask in bits [7:0], and the second packed data operation mask register to store a second 8-bit packed data operation mask in bits [7:0]; and
an execution unit coupled with the decode unit, and coupled with the set of packed data operation mask registers, the execution unit, in response to the decode of the instruction, to store a result in the third packed data operation mask register, the result to include the first 8-bit packed data operation mask in bits [7:0] of the third packed data operation mask register, the second 8-bit packed data operation mask in bits [15:8] of the third packed data operation mask register, and zeroes in all bits of the third packed data operation mask register more significant than bit [15] of the third packed data operation mask register, including zeroes in at least bits [31:16] of the third packed data operation mask register.
2. The processor of claim 1, wherein the third packed data operation mask register comprises 64-bits, and wherein the execution unit, in response to the decode of the instruction, is to store zeroes in bits [63:16] of the third packed data operation mask register.
3. The processor of claim 2, wherein the decode unit is to decode the instruction that has a first field to specify the first packed data operation mask register, that has a second field to specify the second packed data operation mask register, and that has a third field to specify the third packed data operation mask register.
4. The processor of claim 3, wherein an 8-bit size of the first 8-bit packed data operation mask is implicit to an opcode of the instruction.
5. The processor of claim 3, wherein the set of packed data operation mask registers is a set of eight packed data operation mask registers.
6. The processor of claim 3, wherein the execution unit, in response to the decode of the instruction, is to store the result in which bits of the first 8-bit packed data operation mask are to be in a same order as in the first packed data operation mask register, and in which bits of the second 8-bit packed data operation mask are to be in a same order as in the second packed data operation mask register.
7. The processor of claim 3, wherein each bit of the first 8-bit packed data operation mask is to correspond to a different data element of a packed data.
a decode unit to decode an instruction that is to specify a first packed data operation mask register of the set of packed data operation mask registers, that is to specify a second packed data operation mask register of the set of packed data operation mask registers, and that is to specify a third packed data operation mask register of the set of packed data operation mask registers, the first packed data operation mask register to store a first 16-bit packed data operation mask in bits [15:0], and the second packed data operation mask register to store a second 16-bit packed data operation mask in bits [15:0]; and
an execution unit coupled with the decode unit, and coupled with the set of packed data operation mask registers, the execution unit, in response to the decode of the instruction, to store a result in the third packed data operation mask register, the result to include the first 16-bit packed data operation mask in bits [15:0] of the third packed data operation mask register, the second 16-bit packed data operation mask in bits [31:16] of the third packed data operation mask register, and zeroes in all bits of the third packed data operation mask register more significant than bit [31] of the third packed data operation mask register, including zeroes in at least bits [63:32] of the third packed data operation mask register.
9. The processor of claim 8, wherein a 16-bit size of the first 16-bit packed data operation mask is implicit to an opcode of the instruction.
10. The processor of claim 9, wherein the decode unit is to decode the instruction that has a first field to specify the first packed data operation mask register, that has a second field to specify the second packed data operation mask register, and that has a third field to specify the third packed data operation mask register.
11. The processor of claim 10, wherein the set of packed data operation mask registers is a set of eight packed data operation mask registers.
12. The processor of claim 10, wherein the third packed data operation mask register consists of 64-bits.
13. The processor of claim 10, wherein the execution unit, in response to the decode of the instruction, is to store the result in which bits of the first 16-bit packed data operation mask are to be in a same order as in the first packed data operation mask register, and in which bits of the second 16-bit packed data operation mask are to be in a same order as in the second packed data operation mask register.
14. The processor of claim 10, wherein each bit of the first 16-bit packed data operation mask is to correspond to a different data element of a packed data.
a plurality of packed data registers each able to store at least 512-bits;
a plurality of packed data operation mask registers, wherein instructions of an instruction set of the processor are to specify packed data operation mask registers of the plurality of packed data operation mask registers to identify predicate operands to be used for predication;
a decode unit to decode an instruction that is to specify a first packed data operation mask register of the plurality of packed data operation mask registers, that is to specify a second packed data operation mask register of the plurality of packed data operation mask registers, and that is to specify a third packed data operation mask register of the plurality of packed data operation mask registers, the first packed data operation mask register to store a first 16-bit packed data operation mask in bits [15:0], and the second packed data operation mask register to store a second 16-bit packed data operation mask in bits [15:0], wherein the first 16-bit packed data operation mask being 16-bits in size is implicit to an opcode of the instruction; and
an execution unit coupled with the decode unit, and coupled with the plurality of packed data operation mask registers, the execution unit, in response to the decode of the instruction, to store a result in the third packed data operation mask register, the result to include the first 16-bit packed data operation mask in bits [15:0] of the third packed data operation mask register in which bits of the first 16-bit packed data operation mask are to be in a same order in the result as they appear in the first packed data operation mask register, the second 16-bit packed data operation mask in bits [31:16] of the third packed data operation mask register in which bits of the second 16-bit packed data operation mask are to be in a same order in the result as they appear in the second packed data operation mask register, and zeroes in all bits of the third packed data operation mask register more significant than bit [31] of the third packed data operation mask register, including zeroes in at least bits [63:32] of the third packed data operation mask register.
an instruction converter to convert a first instruction of a first instruction set to a set of one or more corresponding instructions of a second different instruction set, the first instruction to specify a first 16-bit packed data operation mask and to specify a second 16-bit packed data operation mask; and
a processor coupled with the instruction converter, the processor including a plurality of packed data registers, a plurality of general-purpose registers, a decode unit to decode each of the set of the one or more corresponding instructions of the second different instruction set, and the processor including one or more execution units to perform the set of the one or more corresponding instructions of the second different instruction set, the processor, due to the performance of the set of the one or more corresponding instructions of the second different instruction set, to store a result in a destination storage location of the processor, the result to include the first 16-bit packed data operation mask in bits [15:0] of the destination storage location, the second 16-bit packed data operation mask in bits [31:16] of the destination storage location, and zeroes in all bits of the destination storage location more significant than bit [31] of the destination storage location.
17. The apparatus of claim 16, wherein it is implicit to an opcode of the first instruction that the first 16-bit packed data operation mask has a 16-bit size.
18. The apparatus of claim 17, wherein the first instruction has a first set of three bits to specify the first 16-bit packed data operation mask, and has a second set of three bits to specify the second 16-bit packed data operation mask.
19. The apparatus of claim 18, wherein the result is to include zeroes in bits [63:16] of the destination storage location.
20. The apparatus of claim 18, wherein each bit of the first 16-bit packed data operation mask is to correspond to a different data element of a packed data, and wherein the first instruction is to have an instruction format that includes a three-byte VEX Prefix.
an instruction converter to convert a first instruction of a first instruction set to a set of one or more corresponding instructions of a second different instruction set, the first instruction to have a first set of three bits to specify a first storage location that is to have a first 16-bit packed data operation mask and to have a second set of three bits to specify a second storage location that is to have a second 16-bit packed data operation mask, wherein the first 16-bit packed data operation mask having a size of 16-bits is implicit to an opcode of the first instruction; and
a processor coupled with the instruction converter, the processor including a plurality of packed data registers, a plurality of general-purpose registers, a decode unit to decode each of the set of the one or more corresponding instructions of the second different instruction set, and the processor including one or more execution units to perform the set of the one or more corresponding instructions of the second different instruction set, the processor, due to the performance of the set of the one or more corresponding instructions of the second different instruction set, to store a result in a destination storage location of the processor, the result to include the first 16-bit packed data operation mask in bits [15:0] of the destination storage location in which bits of the first 16-bit packed data operation mask are to be in a same order in the destination storage location as they appear in the first storage location, the second 16-bit packed data operation mask in bits [31:16] of the destination storage location in which bits of the second 16-bit packed data operation mask are to be in a same order in the destination storage location as they appear in the second storage location, and zeroes in all bits of the destination storage location more significant than bit [31] of the destination storage location, including zeroes in at least bits [63:32] of the destination storage location.
US20170300327A1 US20170300327A1 (en) 2017-10-19
US10372449B2 true US10372449B2 (en) 2019-08-06
CN1180427A (en) 1996-02-28 1998-04-29 爱特梅尔股份有限公司 System for performing arithmetic operations with single or double precision
TW200537879A (en) 2003-11-12 2005-11-16 Qualcomm Inc High data rate interface with improved link control
TW200623765A (en) 2004-06-04 2006-07-01 Qualcomm Inc High data rate interface apparatus and method
WO2012134560A1 (en) 2011-04-01 2012-10-04 Intel Corporation Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask
US20060236076A1 (en) 1994-12-02 2006-10-19 Alexander Peleg Method and apparatus for packing data
CN103460182A (en) 2011-04-01 2013-12-18 英特尔公司 Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask
Final Office Action received for U.S. Appl. No. 13/977,239, dated Jun. 8, 2016, 8 Pages.
First Office Action and Search Report from foreign counterpart Chinese Patent Application No. 201610875222.7, dated Apr. 3, 2018, 15 pages.
Griffith A., "GCC: The Complete reference," McGraw-Hill companies, Jul. 31, 2004, pp. 388-391 and 409-411.
Intel, "Intel 64 and IA-32 Architectures Software Developer's Manual", Instruction Set Reference, A-M, vol. 2A, order No. 253666-039US, May 2011, 832 pages.
Intel, "Intel 64 and IA-32 Architectures Software Developer's Manual", Oct. 2011, 526 pages.
Intel, "Intel 64 and IA-32 Architectures Software Developer's Manual", vol. 1: Basic Architecture, Order Number: 253665-040US, Oct. 2011, 548 pages.
Intel, "Intel 64 and IA-32 Architectures Software Developer's Manual", vol. 2 (2A, B & 2C): Instruction Set Reference, A-Z, Order No. 325383-040US, Oct. 2011, 1721 pages.
International Preliminary Report on Patentability and Written Opinion received for PCT Application No. PCT/US2011/066849 dated Jul. 3, 2014, 6 pages.
International Search Report and Written Opinion reeived for PCT Patent Application No. PCT/US2011/066849, dated Aug. 17, 2012, 11 Pages.
Non-Final Office Action received for U.S. Appl. No. 13/977,239, dated Nov. 13, 2015, 12 pages.
Notice of Allowance received for Taiwan Patent Application No. 101147505, dated Aug. 26, 2015, 2 pages of Taiwan Notice of Allowance Only.
Notice of Allowance received for U.S. Appl. No. 13/977,239, dated Nov. 4, 2016, 7 pages.
Office Action and Search Report received for Chinese Patent Application No. 201180075847.0, dated Dec. 3, 2015, 11 pages of Chinese Office Action including 6 pages of English Translation.
Office Action and Search Report received for Taiwan Patent Application No. 101147505, dated Oct. 30, 2014, 5 pages of Taiwan Office Action Only.
Office Action received for Chinese Patent Application No. 201180075847.0, dated Jun. 12, 2017, 15 pages of Chinese Office Action including 9 pages of English Translation.
Office Action received for Chinese Patent Application No. 201180075847.0, dated Sep. 26, 2016, 23 pages of Chinese Office Action including 9 pages of English Translation.
Supplemental Notice of Allowance received for U.S. Appl. No. 13/977,239, dated Dec. 13, 2016, 5 pages.
JP6163171B2 (en) 2017-07-12 Sort acceleration processor, method, system and instruction
US10228909B2 (en) 2019-03-12 Floating point scaling processors, methods, systems, and instructions