Addition instructions with independent carry chains

US11080045B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11080045-B2
Application numberUS-201113993483-A
CountryUS
Kind codeB2
Filing dateDec 22, 2011
Priority dateDec 22, 2011
Publication dateAug 3, 2021
Grant dateAug 3, 2021

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 number of addition instructions are provided that have no data dependency between each other. A first addition instruction stores its carry output in a first flag of a flags register without modifying a second flag in the flags register. A second addition instruction stores its carry output in the second flag of the flags register without modifying the first flag in the flags register.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by a processor comprising a multi-bit flags register having a plurality of arithmetic flag bits, the method comprising: fetching, using instruction fetch circuitry, first and second addition instructions; decoding, using decode circuitry, the first and second addition instructions, wherein the first and second addition instructions have opcodes specifying, respectively, different first and second flag bits, of the plurality of arithmetic flag bits, from which to read a respective carry-in of the first and second addition instructions and to which to write a respective carry-out of the first and second addition instructions; and executing, using execution circuitry, the first and second addition instructions in parallel, writing carry-outs to the first and second flag bits, without writing to other flag bits. 2. The method of claim 1 , further comprising clearing the plurality of arithmetic flag bits by using the instruction fetch circuitry, the decode circuitry, and the execution circuitry to fetch, decode, and execute an XOR instruction. 3. The method of claim 1 , wherein the plurality of arithmetic flag bits comprises a carry flag, an overflow flag, a sign flag, a parity flag, an auxiliary carry flag, and a zero flag. 4. The method of claim 1 , further comprising fetching and decoding a subtraction instruction specifying a third flag bit of the plurality of arithmetic flag bits, and executing the subtraction instruction to read the third flag bit as a borrow input, and to write a borrow output into the third flag bit without writing to other flag bits. 5. The method of claim 1 , further comprising fetching, decoding, and executing a multiplication instruction to multiply a first factor with a second factor to produce a product that includes a least significant half and a most significant half, the least significant half being a source operand for the first addition instruction, and the most significant half being a source operand for the second addition instruction. 6. The method of claim 5 , wherein the first and second factors are each 64 bits wide, and the product is 128 bits wide. 7. A processor comprising: a multi-bit flags register having a plurality of arithmetic flag bits; fetch circuitry to fetch first and second addition instructions; decode circuitry to decode the first and second addition instructions, wherein the first and second addition instructions have opcodes specifying, respectively, different first and second flag bits, of the plurality of arithmetic flag bits, from which to read a respective carry-in of the first and second addition instructions and to which to write a respective carry-out of the first and second addition instructions; and execution circuitry to execute the first and second addition instructions in parallel, writing carry-outs to the first and second flag bits, without writing to other flag bits. 8. The processor of claim 7 , wherein the fetch circuitry, the decode circuitry, and the execution circuitry are further to clear the plurality of arithmetic flag bits by fetching, decoding, and executing an XOR instruction. 9. The processor of claim 7 , wherein the plurality of arithmetic flag bits comprises a carry flag, an overflow flag, a sign flag, a parity flag, an auxiliary carry flag, and a zero flag. 10. The processor of claim 7 , wherein the fetch circuitry and the decode circuitry are further to fetch and decode a subtraction instruction specifying a third flag bit of the plurality of arithmetic flag bits, and wherein the execution circuitry is further to execute the subtraction instruction to read the third flag bit as a borrow input, and to write a borrow output into the third flag bit without writing to other flag bits. 11. The processor of claim 7 , wherein the fetch circuitry, the decode circuitry, and the execution circuitry are further to fetch, decode, and execute a multiplication instruction to multiply a first factor with a second factor to produce a product that includes a least significant half and a most significant half, the least significant half being a source operand for the first addition instruction, and the most significant half being a source operand for the second addition instruction. 12. The processor of claim 11 , wherein the first and second factors are each 64 bits wide, and the product is 128 bits wide. 13. A non-transitory machine-readable medium containing code, that when executed, causes a processor comprising a multi-bit flags register having a plurality of arithmetic flag bits to perform operations comprising: fetching, using instruction fetch circuitry, first and second addition instructions; decoding, using decode circuitry, the first and second addition instructions, wherein the first and second addition instructions have opcodes specifying, respectively, different first and second flag bits, of the plurality of arithmetic flag bits, from which to read a respective carry-in of the first and second addition instructions and to which to write a respective carry-out of the first and second addition instructions; and executing, using execution circuitry, the first and second addition instructions in parallel, writing carry-outs-to the first and second flag bits, without writing to other flag bits. 14. The non-transitory machine-readable medium of claim 13 , wherein the operations further comprise clearing the plurality of arithmetic flag bits by using the instruction fetch circuitry, the decode circuitry, and the execution circuitry to fetch, decode, and execute an XOR instruction. 15. The non-transitory machine-readable medium of claim 13 , wherein the plurality of arithmetic flag bits comprises a carry flag, an overflow flag, a sign flag, a parity flag, an auxiliary carry flag, and a zero flag. 16. The non-transitory machine-readable medium of claim 13 , wherein the operations further comprise fetching and decoding a subtraction instruction specifying a third flag bit of the plurality of arithmetic flag bits, and executing the subtraction instruction to read the third flag bit as a borrow input, and to write a borrow output into the third flag bit without writing to other flag bits.

Assignees

Inventors

Classifications

  • Dependency mechanisms, e.g. register scoreboarding · CPC title

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

  • G06F9/3001Primary

    Arithmetic 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 US11080045B2 cover?
A number of addition instructions are provided that have no data dependency between each other. A first addition instruction stores its carry output in a first flag of a flags register without modifying a second flag in the flags register. A second addition instruction stores its carry output in the second flag of the flags register without modifying the first flag in the flags register.
Who is the assignee on this patent?
Gopal Vinodh, Guilford James D, Wolrich Gilbert M, and 8 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 Aug 03 2021 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).