IP Library Granted Patent US 9,354,877
Granted Patent B2
US 9,354,877 · App. 13/992,709 · Granted May 31, 2016

Systems, apparatuses, and methods for performing mask bit compression

Inventors: Bret L. Toll (Hillsboro, OR); Robert Valentine (Kiryat Tivon, IL); Jesus Corbal (Barcelona, ES); Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Mark J. Charney (Lexington, MA)
Assignee: Intel Corporation
G06F9/30098G06F9/30018G06F9/30025
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,354,877
App. No.
13/992,709
Granted
May 31, 2016
Kind
B2
Abstract

Embodiments of systems, apparatuses, and methods for performing in a computer processor mask bit compression in response to a single mask bit compression instruction that includes a source writemask register operand, a destination writemask register operand, and an opcode are described.

Claims (30)

1. A method of performing in a computer processor mask bit compression in response to a single mask bit compression instruction that includes a source writemask register operand, a destination writemask register operand, and an opcode, the method comprising steps of:

executing the mask bit compression instruction to determine which writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register, wherein each bit of the source and destination writemask registers is a writemask bit; and

storing the determined writemask bits into the least significant bit positions of the destination writemask register.

2. The method of claim 1 , wherein the writemask registers are 16-bit registers each having 16 writemasks.

3. The method of claim 1 , wherein the writemask registers are 64-bit registers each having 64 writemasks.

4. The method of claim 1 , wherein the opcode sets a number writemask bits of the source writemask register to evaluate for determining which of the writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

5. The method of claim 1 , wherein all writemask bits of the source writemask register are to be evaluated for determining which of the writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

6. The method of claim 5 , wherein only the eight least significant writemask bits of the source writemask register are to be evaluated for determining which of the writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

7. The method of claim 1 , further comprising:

setting all of the destination writemask's bits to be 0 prior to determining which writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

8. The method of claim 1 , wherein the executing and storing steps further comprise:

determining if a least significant bit position of the source writemask register is 1;

when the a least significant bit position of the source writemask register is 1, writing a 1 into a least significant bit position of the destination writemask register that does not have a 1 already stored there; and

when the a least significant bit position of the source writemask register is 0, determining if a next least significant bit position of the source writemask register is 1 when the a least significant bit position of the source writemask register is 0.

9. An article of manufacture comprising:

a non-transitory tangible machine-readable storage medium having stored thereon an occurrence of an instruction, wherein the instruction's format specifies as its only source operand a source operand a single writemask register and specifies as its destination a single writemask register, and wherein the instruction format includes an opcode which instructs a machine, responsive to the single occurrence of the single instruction, to cause at least some of the source operand's writemask bits to be written into one or more least significant bits of the destination operand's writemask register.

10. The article of manufacture of claim 9 , wherein the writemask registers are 16-bit registers each having 16 writemasks.

11. The article of manufacture of claim 9 , wherein the writemask registers are 64-bit registers each having 64 writemasks.

12. The article of manufacture of claim 9 , wherein the opcode sets a number writemask bits of the source writemask register to evaluate for determining which of the writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

13. The article of manufacture of claim 12 , wherein all writemask bits of the source writemask register are to be evaluated for determining which of the writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

14. The article of manufacture of claim 12 , wherein only the eight least significant writemask bits of the source writemask register are to be evaluated for determining which of the writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

15. The article of manufacture of claim 9 , further comprising:

setting all of the destination writemask's bits to be 0 prior to causing at least some of the source operand's writemask bits to be written into one or more least significant bits of the destination operand's writemask register.

16. An apparatus comprising;

a hardware decoder to decode an mask bit compression instruction, wherein the mask bit compression instruction includes a source writemask register operand, a destination writemask register operand, and an opcode;

execution logic to determine which writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register, wherein each bit of the source and destination writemask registers is a writemask bit, and store the determined writemask bits into the least significant bit positions of the destination writemask register.

17. The apparatus of claim 16 , wherein the writemask registers are 16-bit registers each having 16 writemasks.

18. The apparatus of claim 16 , wherein the writemask registers are 64-bit registers each having 64 writemasks.

19. The apparatus of claim 16 , wherein the opcode sets a number writemask bits of the source writemask register to evaluate for determining which of the writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

20. The apparatus of claim 16 , the execution logic further to set all of the destination writemask's bits to be 0 prior to determining which writemask bits of the source writemask register are to be written into the least significant bit positions of the destination writemask register.

Continuity (1)
Related Publication 20140019732A1 · Jan 16, 2014