Multi-register gather instruction

US9766887B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9766887-B2
Application numberUS-201113995437-A
CountryUS
Kind codeB2
Filing dateDec 23, 2011
Priority dateDec 23, 2011
Publication dateSep 19, 2017
Grant dateSep 19, 2017

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.

A processor fetches a multi-register gather instruction that includes a destination operand that specifies a destination vector register, and a source operand that identifies content that indicates multiple vector registers, a first set of indexes of each of the vector registers that each identifies a source data element, and a second set of indexes of the destination vector register for each identified source element. The instruction is decoded and executed, causing, for each of the first set of indexes of each of the vector registers, the source data element that corresponds to that index of that vector register to be stored in a set of destination data elements that correspond to the second set of identified indexes of the destination vector register for that source data element.

First claim

Opening claim text (preview).

What is claimed is: 1. A comprising: fetching a single instruction, wherein the single instruction includes a destination operand that specifies a destination vector register and a source operand that identifies content that indicates: a plurality of first vector registers, a first set of two or more indexes of each of the plurality of first vector registers, wherein each of the first set of indexes identifies a source data element in its corresponding one of the first vector registers, and a second set of two or more indexes of the destination vector register for each identified source data element; decoding the fetched single instruction; and executing the decoded single instruction which causes, for each of the first set of indicated indexes of each of the plurality of first vector registers, the source data element that corresponds to that indicated index of that one of the first vector registers to be stored in a set of one or more destination data elements that correspond to the second set of identified indexes of the destination vector register for that source data element. 2. The method of claim 1 , wherein the source operand specifies a second vector register whose content includes a plurality of data elements that specify the plurality of first vector registers and the first set of indexes of the plurality of first vector registers. 3. The method of claim 2 , wherein the contents of each of the plurality of data elements in the second vector register further indicates whether a source data element of one of the plurality of first vector registers is to be stored in a destination data element of the destination vector register. 4. The method of claim 2 , wherein the second set of indexes of the destination vector register for each identified source data element is indicated through corresponding indexes of the second vector register. 5. The method of claim 2 , wherein the source vector register is a 512-bit register. 6. The method of claim 1 , wherein the source operand specifies a location in memory whose contents specify the plurality of first vector registers and the first set of indexes of the plurality of first vector registers. 7. The method of claim 1 , wherein the destination vector register is a 512-bit register. 8. A processor core, comprising: a hardware decode unit to decode a single instruction, wherein the single instruction includes a destination operand that specifies a destination vector register and a source operand that identifies content that indicates: a plurality of first vector registers, a first set of two or more indexes of each of the plurality of first vector registers, wherein each of the first set of indexes identifies a source data element in its corresponding one of the first vector registers, and a second set of two or more indexes of the destination vector register for each identified source data element; an execution engine unit to execute the decoded single instruction which causes, for each of the for each of the first set of indicated indexes of each of the plurality of first vector registers, the source data element that corresponds to that indicated index of that one of the first vector registers to be stored in a set of one or more destination data elements that correspond to the second set of identified indexes of the destination vector register for that source data element. 9. The processor core of claim 8 , wherein the source operand specifies a second vector register whose content includes a plurality of data elements that specify the plurality of first vector registers and the first set of indexes of the plurality of first vector registers. 10. The processor core of claim 9 , wherein the contents of each of the plurality of data elements in the second vector register further indicates whether a source data element of one of the plurality of first vector registers is to be stored in a destination data element of the destination vector register. 11. The processor core of claim 9 , wherein the second set of indexes of the destination vector register for each identified source data element is indicated through corresponding indexes of the second vector register. 12. The processor core of claim 9 , wherein the source vector register is a 512-bit register. 13. The processor core of claim 8 , wherein the source operand specifies a location in memory whose contents specify the plurality of first vector registers and the first set of indexes of the plurality of first vector registers. 14. The processor core of claim 8 , wherein the destination vector register is a 512-bit register. 15. An article of manufacture, comprising: a non-transitory tangible machine-readable storage medium having stored thereon a single instruction, wherein the single instruction includes a destination operand that specifies a destination vector register and a source operand that identifies content that indicates: a plurality of first vector registers, a first set of two or more indexes of each of the plurality of first vector registers, wherein each of the first set of indexes identifies a source data element in its corresponding one of the first vector registers, and a second set of two or more indexes of the destination vector register for each identified source data element; and wherein the single instruction includes an opcode, which instructs a machine to execute the instruction that causes, for each of the first set of indicated indexes of each of the plurality of first vector registers, the source data element that corresponds to that indicated index of that one of the first vector registers to be stored in a set of one or more destination data elements that correspond to the second set of identified indexes of the destination vector register for that source data element. 16. The article of manufacture of claim 15 , wherein the source operand specifies a second vector register whose content includes a plurality of data elements that specify the plurality of first vector registers and the first set of indexes of the plurality of first vector registers. 17. The article of manufacture of claim 16 , wherein the contents of each of the plurality of data elements in the second vector register further indicates whether a source data element of one of the plurality of first vector registers is to be stored in a destination data element of the destination vector register. 18. The article of manufacture of claim 16 , wherein the second set of indexes of the destination vector register for each identified source data element is indicated through corresponding indexes of the second vector register. 19. The article of manufacture of claim 16 , wherein the source vector register is a 512-bit register. 20. The article of manufacture of claim 15 , wherein the source operand specifies a location in memory whose contents specify the plurality of first vector registers and the first set of indexes of the plurality of first vector registers. 21. The article of manufacture of claim 15 , wherein the destination vector register is a 512-bit register.

Assignees

Inventors

Classifications

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

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

  • using a mask · 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 US9766887B2 cover?
A processor fetches a multi-register gather instruction that includes a destination operand that specifies a destination vector register, and a source operand that identifies content that indicates multiple vector registers, a first set of indexes of each of the vector registers that each identifies a source data element, and a second set of indexes of the destination vector register for each i…
Who is the assignee on this patent?
Jha Ashish, Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/30036. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 19 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).