IP Library › Granted Patent US 10,545,761
Granted Patent B2
US 10,545,761 · App. 16/228,462 · Granted Jan 28, 2020

Methods, apparatus, instructions and logic to provide permute controls with leading zero count functionality

Inventors: Christopher J. Hughes (Santa Clara, CA); Mikhail Plotnikov (Nizhny Novgorod, RU); Andrey Naraikin (Nizhny Novgorod, RU); Robert Valentine (Kiryat Tivon, IL)
Assignee: Intel Corporation
G06F9/30145G06F9/30018G06F9/30032G06F9/30036G06F9/3834
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 10,545,761
App. No.
16/228,462
Granted
Jan 28, 2020
Kind
B2
Abstract

Instructions and logic provide SIMD permute controls with leading zero count functionality. Some embodiments include processors with a register with a plurality of data fields, each of the data fields to store a second plurality of bits. A destination register has corresponding data fields, each of these data fields to store a count of the number of most significant contiguous bits set to zero for corresponding data fields. Responsive to decoding a vector leading zero count instruction, execution units count the number of most significant contiguous bits set to zero for each of data fields in the register, and store the counts in corresponding data fields of the first destination register. Vector leading zero count instructions can be used to generate permute controls and completion masks to be used along with the set of permute controls, to resolve dependencies in gather-modify-scatter SIMD operations.

Claims (21)

1. A processor comprising:

a source packed data register comprising a first plurality of data fields, each data field in the source packed data register having a first plurality of bits;

a destination packed data register comprising a second plurality of data fields corresponding to the first plurality of data fields, each of the second plurality of data fields in the destination packed data register to store a value indicating a number of bits having a first bit value in a corresponding data field of the first plurality of data fields;

a decoder to decode an instruction specifying a vector population count operation; and

execution circuitry to perform the vector population count operation, the execution circuitry to:

read values of the first plurality of bits in each of the first plurality of data fields in the source packed data register;

generate each value indicating the number of bits set to the first bit value in a corresponding data field of the first plurality of data fields; and

store each value in a corresponding data field of the second plurality of data fields in the destination packed data register.

2. The processor of claim 1 wherein the first bit value comprises a binary 1.

3. The processor of claim 1 further comprising:

a vector register file comprising a plurality of 512-bit vector registers, wherein the destination packed data register and the source packed data register are 512-bit vector registers.

4. The processor of claim 2 further comprising:

a set of vector mask registers to store mask values generated by one or more instructions.

5. The processor of claim 4 wherein the vector mask registers are smaller than 512-bits.

6. The processor of claim 1 wherein the execution circuitry comprises single-instruction multiple data (SIMD) execution circuitry to perform the vector population count operation, the processor further comprising:

scalar execution circuitry to execute one or more scalar instructions, the scalar execution circuitry including a set of scalar registers.

7. The processor of claim 5 wherein the execution circuitry comprises SIMD execution circuitry to perform the vector population count operation.

8. The processor of claim 7 further comprising:

a plurality of cores to execute a plurality of threads each comprising a plurality of instructions, wherein the scalar execution circuitry is included in a first core of the plurality of cores and wherein one or more other cores in the plurality of cores includes other scalar execution circuitry.

9. The processor of claim 5 further comprising:

a plurality of status registers to maintain data related to an execution state of the processor.

Continuity (9)
Continuation 15912468 · Mar 5, 2018
Continuation 15912486 · Mar 5, 2018
Continuation 15912498 · Mar 5, 2018
Continuation 15790987 · Oct 23, 2017
Continuation 15790987 · Oct 23, 2017
Continuation 15790987 · Oct 23, 2017
Continuation 15188817 · Jun 21, 2016
Continuation 13731008 · Dec 29, 2012
Related Publication 20190121642A1 · Apr 25, 2019