Multiplication instruction for which execution completes without writing a carry flag

US10649774B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10649774-B2
Application numberUS-201715855575-A
CountryUS
Kind codeB2
Filing dateDec 27, 2017
Priority dateDec 22, 2009
Publication dateMay 12, 2020
Grant dateMay 12, 2020

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 method in one aspect may include receiving a multiply instruction. The multiply instruction may indicate a first source operand and a second source operand. A product of the first and second source operands may be stored in one or more destination operands indicated by the multiply instruction. Execution of the multiply instruction may complete without writing a carry flag. Other methods are also disclosed, as are apparatus, systems, and instructions on machine-readable medium.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: a flags register to store arithmetic flags and a virtual-8086 mode flag; a decoder to decode instructions, including an unsigned multiply instruction; and execution circuitry coupled to the decoder, the execution circuitry to perform operations associated with the unsigned multiply instruction, the operations comprising to perform a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product, the execution circuitry to store a lower half of the unsigned product in a first destination register and to store an upper half of the unsigned product in a second destination register without affecting any of the arithmetic flags. 2. The processor of claim 1 , wherein the arithmetic flags include a carry flag and an overflow flag. 3. The processor of claim 2 , wherein the unsigned multiply instruction comprises an enable flag update control bit set to a first value to indicate that the carry flag and the overflow flag are not to be updated. 4. The processor of claim 1 , wherein the unsigned multiply instruction comprises an opcode F20F38F6/r in at least one mode. 5. The processor of claim 1 , further comprising instruction fetch circuitry to fetch instructions from a memory subsystem. 6. The processor of claim 1 , further comprising a memory controller to couple a core having the decoder to a system memory. 7. The processor of claim 1 , further comprising: a plurality of cores on a single integrated circuit (IC) chip, a first core comprising the flags register, the decoder, and the execution circuitry; a Level 1 (L1) cache to store data to be processed by the first core; and a first cache shared by the cores, the first cache to store data to be processed by the cores. 8. The processor of claim 1 , wherein the unsigned multiply instruction can be performed in a 32-bit mode in which the unsigned explicit source operand is to be stored in one of a 32-bit register or memory and a 64-bit mode in which the unsigned explicit source operand is to be stored in one of a 64-bit register or memory. 9. The processor of claim 8 , wherein the unsigned implicit source operand is to be stored in a 64-bit RDX register for the 64-bit mode. 10. A processor comprising: a flags register to store arithmetic flags; a decoder to decode instructions, including an unsigned multiply instruction; and execution circuitry coupled to the decoder, the execution circuitry to perform operations associated with the unsigned multiply instruction, the operations comprising to perform a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product, the execution circuitry to store a lower half of the unsigned product in a first destination register and to store an upper half of the unsigned product in a second destination register without affecting any of the arithmetic flags, wherein the arithmetic flags include a carry flag and an overflow flag, and wherein the flags register is to additionally store a parity flag, an auxiliary carry flag, a zero flag, a sign flag, a trap flag, an interrupt enable flag, an I/O privileged level, a nested task flag, a resume flag, a virtual-8086 mode flag, an alignment check flag, a virtual interrupt flag, a virtual interrupt pending flag, an ID flag, and a direction flag. 11. A method comprising: writing arithmetic flags in a flags register and writing an alignment check flag; decoding instructions, including an unsigned multiply instruction; performing operations associated with the unsigned multiply instruction, the operations comprising performing a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product; storing a lower half of the unsigned product in a first destination register; storing an upper half of the unsigned product in a second destination register; and completing performance of the unsigned multiply instruction without affecting any of the arithmetic flags. 12. The method of claim 11 , wherein said writing the arithmetic flags in the flags register comprises writing a carry flag and writing an overflow flag. 13. The method of claim 12 , further comprising determining that an enable flag update control bit associated with the unsigned multiply instruction is set to a first value to indicate that the carry flag and the overflow flag are not to be updated. 14. The method of claim 12 , further comprising accessing a plurality of other flags in the flags register, including a parity flag, an auxiliary carry flag, a zero flag, a sign flag, a trap flag, an interrupt enable flag, an I/O privileged level, a nested task flag, a resume flag, a virtual-8086 mode flag, an alignment check flag, a virtual interrupt flag, a virtual interrupt pending flag, an ID flag, and a direction flag. 15. The method of claim 11 , further comprising accessing data in a system memory with a memory controller. 16. The method of claim 11 , further comprising determining one of two modes in which to perform the unsigned multiply instruction, the two modes including a 32-bit mode in which the unsigned explicit source operand is to be stored in one of a 32-bit register or memory and a 64-bit mode in which the unsigned explicit source operand is to be stored in one of a 64-bit register or memory. 17. The method of claim 16 , further comprising accessing the unsigned implicit source operand from a 64-bit RDX register for the 64-bit mode. 18. An article of manufacture comprising a machine-readable storage medium, the machine-readable storage medium comprising at least one of an optical disk, a magnetic disk, a read only memory (ROM), and a random access memory (RAM), the machine-readable storage medium storing a set of instructions including an unsigned multiply instruction, the set of instructions when performed by a machine are to cause the machine to perform operations comprising to write arithmetic flags, an auxiliary carry flag, and a virtual interrupt pending flag in a flags register, and the unsigned multiply instruction when performed by a machine is to cause the machine to perform operations comprising to: decode the unsigned multiply instruction; perform operations associated with the unsigned multiply instruction, the operations including to perform a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product; store a lower half of the unsigned product in a first destination register; store an upper half of the unsigned product in a second destination register; and complete the performance of the unsigned multiply instruction without affecting any of the arithmetic flags. 19. The article of manufacture of claim 18 , wherein the set of instructions further comprise instructions that when performed by the machine are to cause the machine to perform operations comprising to determine one of two modes in which to perform the unsigned multiply instruction, the two modes including a 32-bit mode in which the unsigned explicit source operand is to be stored in one of a 32-bit register or memory and a 64-bit mode in which the unsigned explicit source operand is to be stored in one of a 64-bit register or memory. 20. The article of manufacture of claim 19 , wherein the unsigned multiply instruction when performed by a machine is to cause the machine to perform operations comprising to access the unsigned implicit source operan

Assignees

Inventors

Classifications

  • Condition code generation, e.g. Carry, Zero flag · CPC title

  • with variable precision · 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 US10649774B2 cover?
A method in one aspect may include receiving a multiply instruction. The multiply instruction may indicate a first source operand and a second source operand. A product of the first and second source operands may be stored in one or more destination operands indicated by the multiply instruction. Execution of the multiply instruction may complete without writing a carry flag. Other methods are …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/30094. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 12 2020 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).