Multiplication instruction for which execution completes without writing a carry flag

US9990201B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9990201-B2
Application numberUS-64538309-A
CountryUS
Kind codeB2
Filing dateDec 22, 2009
Priority dateDec 22, 2009
Publication dateJun 5, 2018
Grant dateJun 5, 2018

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 method comprising: receiving a multiply instruction, the multiply instruction indicating source operands consisting of only a first source operand and a second source operand, wherein the first and second source operands have a same size; performing a multiply operation, including propagating carries, on the first and second source operands to generate a product of the first and second source operands; and storing a product of the first and second source operands in one or more destination operands indicated by the multiply instruction, wherein the one or more destination operands in which the product is stored have twice as many bits as each of the first and second source operands; and completing execution of the multiply instruction without writing a carry flag, wherein the multiply instruction is included in an instruction set with another multiply instruction that when performed is to cause updating of the carry flag dependent upon a corresponding product. 2. The method of claim 1 , wherein completing comprises completing execution of the multiply instruction without writing the carry flag regardless of a value of the product. 3. The method of claim 1 , wherein completing comprises completing execution of the multiply instruction without reading the carry flag. 4. The method of claim 1 , wherein completing comprises completing execution of the multiply instruction without reading or writing an overflow flag. 5. The method of claim 1 , wherein receiving comprises receiving the multiply instruction that explicitly specifies a first destination operand of the one or more destination operands and implicitly indicates a second destination operand of the one or more destination operands. 6. The method of claim 1 , wherein receiving comprises receiving the multiply instruction that implicitly indicates but does not explicitly specify a source operand selected from the first and second source operands and that implicitly indicates but does not explicitly specify a destination operand of the one or more destination operands, and wherein the implicitly indicated source operand corresponds to a different storage location than the implicitly indicated destination operand. 7. The method of claim 1 , further comprising: receiving a second multiply instruction indicating a third source operand and a fourth source operand; storing a second product of the third and fourth source operands in one or more second destination operands indicated by the second multiply instruction; and completing execution of the second multiply instruction without writing the carry flag; and adding the product and the second product utilizing the carry flag. 8. The method of claim 1 , wherein the size of each of the first and second source operands is one of 32 bits and 64 bits, wherein the first source operand comprises a location in a general purpose register, and wherein the product comprises a product of unsigned integers, and wherein the one or more destination operands comprise two destination operands each of a same size as the size of each of the first and second source operands. 9. The method of claim 1 , wherein the method is performed by a general-purpose microprocessor having a plurality of cores, and wherein at least one of the cores has circuitry responsive to the instruction and is also operable to execute a second multiply instruction that indicates third and fourth source operands of a same size to generate a second product of the third and fourth source operands indicated by the second multiply instruction and write the carry flag depending on a value of the second product. 10. The method of claim 1 , further comprising decoding an ADD instruction, an ADC instruction, and a MOV instruction, and wherein the carry flag is in an EFLAGS register. 11. An apparatus comprising: a register to store a carry flag; and an execution unit coupled with the register and that is operable as a result of a multiply instruction that is to indicate source operands consisting of only a first source operand and a second source operand that are each to have a same size to multiply the first and second source operands with carry propagation to generate a product and to store the product of the first and second source operands in one or more destination operands that are to be indicated by the multiply instruction, the one or more destination operands to have twice as many bits as each of the first and second source operands, and the execution unit to complete execution of the multiply instruction without writing the carry flag, wherein the multiply instruction is part of an instruction set that also includes another multiply instruction that is to be performed to generate a product and update the carry flag dependent upon a value of the product of said another multiplication instruction. 12. The apparatus of claim 11 , wherein the execution unit is to complete execution of the multiply instruction without writing the carry flag regardless of a value of the product. 13. The apparatus of claim 11 , wherein the execution unit is to complete execution of the multiply instruction without reading the carry flag. 14. The apparatus of claim 11 , wherein the execution unit is to complete execution of the multiply instruction without reading or writing an overflow flag. 15. The apparatus of claim 11 , wherein the execution unit is operable to store at least part of the product at a first destination operand of the one or more destination operands that is to be explicitly specified by the multiply instruction and at least part of the product at a second destination operand of the one or more destination operands that is to be implicitly indicated by the multiply instruction. 16. The apparatus of claim 15 , wherein the execution unit is operable to store highest order bits of the product at the explicitly specified first destination operand, and wherein the execution unit is operable to store lowest order bits of the product at the implicitly indicated second destination operand. 17. The apparatus of claim 11 , wherein the execution unit is operable to receive a source operand that is one of the first and second source operands that is to be implicitly indicated by the multiply instruction, wherein the execution unit is operable to store at least part of the product at a destination operand of the one or more destination operands that is to be implicitly indicated by the multiply instruction, and wherein the implicitly indicated source operand is to correspond to a different storage location than the implicitly indicated destination operand. 18. The apparatus of claim 17 , wherein the storage location corresponding to the implicitly indicated source operand comprises a general-purpose register that is one of a 32-bit register and a 64-bit register, and wherein the storage location corresponding to the implicitly indicated destination operand comprises a general-purpose register that is one of a different 32-bit register and a different 64-bit register. 19. The apparatus of claim 11 , wherein the product comprises a product of unsigned integers, and further comprising first and second general-purpose registers to respectively store the first and second source operands, wherein the first and second general-purpose registers each have the same size and that size is one of 32-bits and 64-bits. 20. The apparatus of claim 11 , wherein the instruction comprises a machine instruction, wherein the execution unit comprises circuitry responsive to the machine ins

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 US9990201B2 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?
Gopal Vinodh, Guilford James D, Feghali Wajdi K, and 9 more
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 Jun 05 2018 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).