Zero operand instruction conversion for accelerating sparse computations in a central processing unit pipeline

US11714652B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11714652-B2
Application numberUS-202117384646-A
CountryUS
Kind codeB2
Filing dateJul 23, 2021
Priority dateJul 23, 2021
Publication dateAug 1, 2023
Grant dateAug 1, 2023

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 processing device includes a zero detection circuit to determine that an operand of a first instruction is zero and instruction conversion logic coupled with the zero detection circuit to, in response to the zero detection circuit determining that the operand is zero, convert the first instruction to a register move instruction executable by the processing device.

First claim

Opening claim text (preview).

What is claimed is: 1. A processing device, comprising: a zero value address logic circuit configured to, in response to detecting that a first instance of a load instruction is for storing a zero value, record a source address of the first instance of the load instruction; a zero detection circuit configured to determine that an operand of a first instruction is zero based on the recorded source address; and an instruction conversion logic circuit coupled with the zero detection circuit and configured to, in response to the zero detection circuit determining that the operand is zero, convert the first instruction to a register move instruction executable by the processing device. 2. The processing device of claim 1 , further comprising: a physical register file configured to store a plurality of zero flags each associated with one of a plurality of addresses in the physical register file, wherein the zero detection circuit is further configured to, in response to determining that a load instruction for storing the operand at a destination address in the physical register file is for storing a zero value, assert a zero flag of the plurality of zero flags that is associated with the destination address, wherein the zero detection circuit is configured to determine that the operand is zero by determining that the zero flag is asserted. 3. The processing device of claim 1 , wherein: the zero detection circuit is further configured to, when execution of the register move instruction causes a zero value to be stored in a destination register of the register move instruction, assert a zero flag associated with the destination register of the register move instruction. 4. The processing device of claim 1 , further comprising: a load zero value predictor circuit coupled with the instruction conversion logic circuit and configured to: in response to detecting that the first instance of the load instruction is for storing a zero value, incrementing a confidence counter associated with a program counter of the load instruction; and in response to detecting that a second instance of the load instruction stores a nonzero value, decreasing the confidence counter. 5. The processing device of claim 4 , wherein: the load zero value predictor circuit is further configured to, in response to a third instance of the load instruction, assert a zero flag associated with a destination register of the load instruction when the confidence counter associated with the program counter of the load instruction exceeds a confidence threshold, wherein the zero detection circuit is configured to determine that the operand is zero by determining that the zero flag is asserted. 6. The processing device of claim 4 , wherein: the load zero value predictor circuit is further configured to predict that the operand is zero based on the confidence counter; and the processing device further comprises a pipeline flush logic circuit configured to perform a pipeline flush in response to determining that an actual value of the operand is nonzero. 7. The processing device of claim 1 , wherein: the zero value address logic circuit is further configured to: record the source address of the first instance of the load instruction in an entry of a zero value address table (ZVAT), and in response to detecting a request to access the source address, invalidate the entry. 8. The processing device of claim 7 , wherein: the zero value address logic circuit is further configured to detect the request to access the source address by detecting one of an exclusive access request and a modify access request directed to a cache entry for the source address. 9. The processing device of claim 1 , wherein the instruction conversion logic circuit is further configured to: determine an operand of the register move instruction based on an operation type of the first instruction, wherein the operation type is one of an add, multiply, subtract, and logical AND operation type. 10. The processing device of claim 1 , wherein: the first instruction is a vectorized instruction; and the register move instruction is a vectorized register move instruction with a destination register in a vector physical register file. 11. A computing system, comprising: a memory configured to store an operand for a first instruction; and a processor coupled with the memory and comprising a zero value address logic circuit configured to, in response to determining that a first instance of a load instruction is for storing a zero value, record a source address of the first instance of the load instruction, wherein the processor is further configured to: in response to receiving the first instruction, determine that the operand is zero based on the recorded source address, in response to determining that the operand is zero, convert the first instruction to a register move instruction, and execute the register move instruction. 12. The computing system of claim 11 , wherein: the memory comprises a physical register file storing a plurality of zero flags each associated with one of a plurality of addresses in the physical register file, wherein the processor is further configured to, in response to determining that a load instruction for storing the operand at a destination address in the physical register file is for storing a zero value, assert a zero flag of the plurality of zero flags that is associated with the destination address, wherein the processor is configured to determine that the operand is zero by determining that the zero flag is asserted. 13. The computing system of claim 11 , further comprising: a zero value address table (ZVAT), wherein the zero value address logic circuit configured to: record the source address of the first load instruction in an entry of the ZVAT, and in response to determining that a source address of a second load instruction is recorded in an entry of the ZVAT, assert a zero flag associated with a destination address of the second load instruction. 14. A method, comprising: in response to detecting that a first instance of a load instruction is for storing a zero value, recording a source address of the first instance of the load instruction; in response to receiving a first instruction in a processor, determining that an operand of the first instruction is zero based on the recorded source address; and in response to determining that the operand is zero, converting the first instruction to a register move instruction executable by the processor. 15. The method of claim 14 , further comprising: in response to determining that a load instruction for storing the operand at an address in a physical register file is for storing a zero value, asserting a zero flag associated with the address, wherein determining that the operand is zero comprises determining that the zero flag associated with the operand is asserted. 16. The method of claim 14 , further comprising: when execution of the register move instruction causes a zero value to be stored in a destination register, asserting a zero flag associated with the destination register of the register move instruction. 17. The method of claim 14 , further comprising: in response to detecting that the first instance of the load instruction is for storing a zero value, incrementing a confidence counter associated with a program counter of the load instruction; and in response to detecting that a second instance of the load instruction stores a nonzero value, decreasing the confidence counter. 18. The method of clai

Assignees

Inventors

Classifications

  • G06F9/3832Primary

    Value prediction for operands; operand history buffers · CPC title

  • Arithmetic instructions · CPC title

  • Instruction operation extension or modification · 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 US11714652B2 cover?
A processing device includes a zero detection circuit to determine that an operand of a first instruction is zero and instruction conversion logic coupled with the zero detection circuit to, in response to the zero detection circuit determining that the operand is zero, convert the first instruction to a register move instruction executable by the processing device.
Who is the assignee on this patent?
Advanced Micro Devices Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/3832. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2023 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).