Instruction and logic to provide vector horizontal majority voting functionality

US9448794B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9448794-B2
Application numberUS-201113977735-A
CountryUS
Kind codeB2
Filing dateNov 30, 2011
Priority dateNov 30, 2011
Publication dateSep 20, 2016
Grant dateSep 20, 2016

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.

Instructions and logic provide vector horizontal majority voting functionality. Some embodiments, responsive to an instruction specifying: a destination operand, a size of the vector elements, a source operand, and a mask corresponding to a portion of the vector element data fields in the source operand; read a number of values from data fields of the specified size in the source operand, corresponding to the mask specified by the instruction and store a result value to that number of corresponding data fields in the destination operand, the result value computed from the majority of values read from the number of data fields of the source operand.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: a vector register comprising a plurality of data fields to store values of vector elements; a decode stage to decode a first instruction specifying: a destination operand, a size of the vector elements, a portion of the plurality of data fields, and a source operand; and an execution unit, responsive to the decoded first instruction, to: read a number of values from data fields of the size of the vector elements in the source operand; and store a result value in the destination operand specified by the first instruction, wherein the result value is computed from most common values read from the number of the values from the data fields of the source operand, and wherein the result value is computed as a bitwise majority value from the values read from the data fields of the source operand and the bitwise majority value has a bias for one or a bias for zero in case of ties. 2. The processor of claim 1 , wherein the execution unit, responsive to the decoded first instruction, is to store the result value to a number of corresponding data fields in the destination operand specified by the first instruction. 3. The processor of claim 1 , wherein the first instruction specifies a mask identifying the portion of the plurality of data fields, and wherein the number of the values read from the data fields in the source operand corresponds to vector elements in the source operand unmasked by the mask specified by the first instruction. 4. The processor of claim 3 , wherein the result value is computed as the bitwise majority value from the unmasked vector elements of the values read from the data fields of the source operand. 5. The processor of claim 3 , wherein the result value is computed as the bitwise majority value from at least k ones of the unmasked vector elements of the values read from the data fields of the source operand, and wherein k is specified by the first instruction. 6. The processor of claim 1 , wherein the result value is computed as a value of a majority of matching ones of the values read from the data fields of vector elements of the source operand. 7. The processor of claim 6 , wherein the result value is computed as a value of a majority from at least k matching ones of the values read from unmasked ones of the vector elements of the source operand, and wherein k is specified by the first instruction. 8. A non-transitory machine-readable medium having a first executable instruction stored therein that, when executed by a machine, causes the machine to: read a number of values from a portion of a plurality of data fields in a source operand specified by the first executable instruction, wherein the data fields store values of masked and unmasked vector elements, and wherein the number corresponds to a same number of the unmasked vector elements according to a mask specified by the first executable instruction; compute a result value to represent a majority of the number of the values read; and store the result value in a destination operand specified by the first executable instruction, wherein the result value is computed as a bitwise majority value from the unmasked vector elements of the values read from the portion of the plurality of data fields of the source operand and the bitwise majority value has a bias for one or a bias for zero in case of ties. 9. The non-transitory machine-readable medium of claim 8 , wherein to store the result value in the destination operand comprises storage of the result value to corresponding data fields in the destination operand specified by the first executable instruction. 10. The non-transitory machine-readable medium of claim 8 , wherein the result value is computed as the bitwise majority value from the unmasked vector elements of the values read from the data fields of the source operand. 11. The non-transitory machine-readable medium of claim 8 , wherein the result value is computed as the bitwise majority value from at least k ones of the unmasked vector elements of the values read from the data fields of the source operand, and wherein k is specified by the first executable instruction. 12. The non-transitory machine-readable medium of claim 8 , wherein the result value is computed as a value of a majority of matching ones of the values read from the data fields of the unmasked vector elements of the source operand. 13. A processing system comprising: a memory; and a plurality of processors, wherein each of the plurality of processors comprises: a vector register comprising a plurality of data fields to store values of vector elements; a decode stage to decode a first instruction specifying: a destination operand, a size of the vector elements, a portion of the plurality of data fields, and a source operand; and an execution unit, responsive to the decoded first instruction, to: read a number of values from data fields of the size of the vector elements in the source operand; and store a result value in the destination operand specified by the first instruction, wherein the result value is computed from most common values read from the number of the values from the data fields of the source operand, and wherein the result value is computed as a bitwise majority value from the values read from the data fields of the source operand and the bitwise majority value has a bias for one or a bias for zero in case of ties. 14. The processing system of claim 13 , wherein the execution unit, responsive to the decoded first instruction, is to store the result value to a number of corresponding data fields in the destination operand specified by the first instruction. 15. The processing system of claim 13 , wherein the first instruction specifies a mask identifying the portion of the plurality of data fields, and wherein the number of the values read from the data fields in the source operand corresponds to vector elements in the source operand unmasked by the mask specified by the first instruction. 16. The processing system of claim 13 , wherein the result value is computed as the bitwise majority value from at least k ones of the unmasked vector elements of the values read from the data fields of the source operand, and wherein k is specified by the first instruction. 17. The processing system of claim 13 , wherein the result value is computed as a value of a majority of matching ones of the values read from the data fields of vector elements of the source operand. 18. The processing system of claim 17 , wherein the result value is computed as a value of a majority from at least k matching ones of the values read from unmasked ones of the vector elements of the source operand, and wherein k is specified by the first instruction. 19. A computer-implemented method comprising: read a number of values from a portion of a plurality of data fields in a source operand specified by a first executable instruction, wherein the data fields store values of masked and unmasked vector elements, and wherein the number corresponds to a same number of the unmasked vector elements according to a mask specified by the first executable instruction; compute a result value to represent a majority of the number of the values read; and store the result value in a destination operand specified by the first executable instruction, wherein the result value is computed as a bitwise majority value from the unmasked vector elements of the values read from the portion of the plurality of data fields of the source operand and the bitwise majority value has a

Assignees

Inventors

Classifications

  • Generic software techniques for error detection or fault masking · CPC title

  • Compare instructions, e.g. Greater-Than, Equal-To, MINMAX · CPC title

  • G06F7/22Primary

    Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc · CPC title

  • Instruction analysis, e.g. decoding, instruction word fields · CPC title

  • using arrangements adapted for a specific error detection or correction feature · 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 US9448794B2 cover?
Instructions and logic provide vector horizontal majority voting functionality. Some embodiments, responsive to an instruction specifying: a destination operand, a size of the vector elements, a source operand, and a mask corresponding to a portion of the vector element data fields in the source operand; read a number of values from data fields of the specified size in the source operand, corre…
Who is the assignee on this patent?
Ould-Ahmed-Vall Elmoustapha, Doshi Kshitij A, Sair Suleyman, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F7/22. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 20 2016 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).