Method and apparatus for performing a vector bit reversal and crossing

US2016179529A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016179529-A1
Application numberUS-201414581738-A
CountryUS
Kind codeA1
Filing dateDec 23, 2014
Priority dateDec 23, 2014
Publication dateJun 23, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An apparatus and method for performing a vector bit reversal and crossing. For example, one embodiment of a processor comprises: a first source vector register to store a first plurality of source bit groups, wherein a size for the bit groups is to be specified in an immediate of an instruction; a second source vector to store a second plurality of source bit groups; vector bit reversal and crossing logic to determine a bit group size from the immediate and to responsively reverse positions of contiguous bit groups within the first source vector register to generate a set of reversed bit groups, wherein the vector bit reversal and crossing logic is to additionally interleave the set of reversed bit groups with the second plurality of bit groups; and a destination vector register to store the reversed bit groups interleaved with the first plurality of bit groups.

First claim

Opening claim text (preview).

What is claimed is: 1 . A processor comprising: a first source vector register to store a first plurality of source bit groups, wherein a size for the bit groups is to be specified in an immediate of an instruction; a second source vector to store a second plurality of source bit groups; vector bit reversal and crossing logic to determine a bit group size from the immediate and to responsively reverse positions of contiguous bit groups within the first source vector register to generate a set of reversed bit groups, wherein the vector bit reversal and crossing logic is to additionally interleave the set of reversed bit groups with the second plurality of bit groups; and a destination vector register to store the reversed bit groups interleaved with the first plurality of bit groups. 2 . The processor as in claim 1 wherein as a result of the interleaving, half of the reversed bit groups are selected to be stored in the destination and half of the second plurality of bit groups are selected to be stored in the destination. 3 . The processor as in claim 2 wherein the selected half of the reversed bit groups are to be interleaved into even positions or odd positions within the destination vector register in accordance with the immediate and wherein the selected half of the second plurality of bit groups are to be stored within alternating positions relative to the positions of the reversed bit groups. 4 . The processor as in claim 1 wherein the vector bit reversal and crossing logic comprises one or more multiplexers to reverse the bit groups from the source vector register and interleave the reversed bit groups with bit groups from the second plurality in the destination vector register in accordance with the immediate. 5 . The processor as in claim 1 wherein the size for the bit groups is selected from the group consisting of 1 bit, 2 bits, 4 bits, 8 bits, 16 bits, and 32 bits. 6 . The processor as in claim 1 wherein the source vector register and the destination vector register comprise 512-bit vector registers, each having 64-bit data elements and wherein each bit group is included within one of the 64-bit data elements. 7 . The processor as in claim 6 wherein the vector bit reversal and crossing logic is to determine a bit group size from the immediate and to responsively reverse positions of contiguous bit groups for multiple 64-bit data elements of the source vector register. 8 . The processor as in claim 1 wherein the vector bit reversal and crossing logic is to perform a reversal of all of the bits within a data element by first reversing positions of contiguous bit groups within the data element at a highest level of granularity, and then successively decreasing the granularity until the bit group size comprises a single bit. 9 . The processor as in claim 8 wherein the data element is 64-bits and wherein the highest level of granularity for reversing positions of contiguous bit groups comprises a bit group size of 32 bits, the next selected bit group size for reversing positions of contiguous bit groups comprises 16 bits, the next selected bit group size for reversing positions of contiguous bit groups comprises 8 bits, the next selected bit group size for reversing positions of contiguous bit groups comprises 4 bits, the next selected bit group size for reversing positions of contiguous bit groups comprises 2 bits and the final selected bit group size for reversing positions of contiguous bit groups comprises 1 bit. 10 . The processor as in claim 1 further comprising: an instruction fetch unit to fetch a vector bit reversal instruction from a memory or cache, the bit reversal instruction having the immediate associated therewith, the vector bit reversal and crossing logic to process the vector bit reversal instruction to determine the bit group size from the immediate and to responsively reverse positions of contiguous bit groups within the source vector register to generate a set of reversed bit groups. 11 . The processor as in claim 10 wherein the vector bit reversal and crossing logic comprises a vector bit reversal decode component to decode the vector bit reversal instruction to generate a decoded vector bit reversal instruction and a vector bit reversal execution component to execute the decoded vector bit reversal instruction. 12 . The processor as in claim 11 wherein the decoded vector bit reversal instruction comprises a plurality of micro-operations. 13 . The processor as in claim 1 wherein the vector bit reversal and crossing logic is to perform a mathematical function by generating multiple sets of reversed bit groups and interleaving the multiple sets of reversed bit groups with multiple additional sets of bit groups, including those from the second plurality. 14 . The processor as in claim 13 wherein at least some of the multiple additional sets of bit groups comprise bit groups from which the reversed bit groups are generated, including those from the second plurality. 15 . The processor as in claim 13 wherein the mathematical function comprises a transpose operation or a tilt primitive operation. 16 . A method comprising: storing a first plurality of source bit groups in a first source vector register, wherein a size for the bit groups is to be specified in an immediate of an instruction; storing a second plurality of source bit groups in a second source vector; determining a bit group size from the immediate and responsively reversing positions of contiguous bit groups within the first source vector register to generate a set of reversed bit groups; interleaving the set of reversed bit groups with the second plurality of bit groups; and storing the reversed bit groups interleaved with the first plurality of bit groups within a destination vector register. 17 . The method as in claim 16 wherein as a result of the interleaving, half of the reversed bit groups are selected to be stored in the destination and half of the second plurality of bit groups are selected to be stored in the destination. 18 . The method as in claim 17 wherein the selected half of the reversed bit groups are to be interleaved into even positions or odd positions within the destination vector register in accordance with the immediate and wherein the selected half of the second plurality of bit groups are to be stored within alternating positions relative to the positions of the reversed bit groups. 19 . The method as in claim 16 wherein the vector bit reversal and crossing logic comprises one or more multiplexers to reverse the bit groups from the source vector register and interleave the reversed bit groups with bit groups from the second plurality in the destination vector register in accordance with the immediate. 20 . The method as in claim 16 wherein the size for the bit groups is selected from the group consisting of 1 bit, 2 bits, 4 bits, 8 bits, 16 bits, and 32 bits. 21 . The method as in claim 16 wherein the source vector register and the destination vector register comprise 512-bit vector registers, each having 64-bit data elements and wherein each bit group is included within one of the 64-bit data elements. 22 . The method as in claim 21 further comprising: determining a bit group size from the immediate and to responsively reversing positions of contiguous bit groups for multiple 64-bit data elements of the source vector register. 23 . The method as in claim 16 further comprising: per

Assignees

Inventors

Classifications

  • Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE · CPC title

  • using a mask · CPC title

  • Instructions to perform operations on packed data, e.g. vector, tile or matrix operations · CPC title

  • Bit or string instructions · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016179529A1 cover?
An apparatus and method for performing a vector bit reversal and crossing. For example, one embodiment of a processor comprises: a first source vector register to store a first plurality of source bit groups, wherein a size for the bit groups is to be specified in an immediate of an instruction; a second source vector to store a second plurality of source bit groups; vector bit reversal and cro…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/30038. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jun 23 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).