Fusion of microprocessor store instructions

US2022019436A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2022019436-A1
Application numberUS-202016933241-A
CountryUS
Kind codeA1
Filing dateJul 20, 2020
Priority dateJul 20, 2020
Publication dateJan 20, 2022
Grant date

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.

Provided is a method for fusing store instructions in a microprocessor. The method includes identifying two instructions in an execution pipeline of a microprocessor. The method further includes determining that the two instructions meet a fusion criteria. In response to determining that the two instructions meet the fusion criteria, the two instructions are recoded into a fused instruction. The fused instruction is executed.

First claim

Opening claim text (preview).

1 . A method comprising: identifying two instructions in an execution pipeline of a microprocessor, wherein the two instructions include a first instruction and a second instruction; determining that the two instructions meet a fusion criteria, wherein determining that the two instructions meet the fusion criteria comprises determining that the first and second instructions have a same instruction form and store data in contiguous memory locations; recoding, in response to determining that the two instructions meet the fusion criteria, the two instructions into a fused instruction; and executing the fused instruction. 2 . The method of claim 1 , wherein determining that the two instructions meet the fusion criteria further comprises: determining that the first and second instructions have a same instruction type, a same instruction length, and that they are consecutive instructions in a fetch queue. 3 . The method of claim 1 , wherein the method further comprises: identifying an exception while executing the fused instruction; flushing the fused instruction; and re-fetching the two instructions. 4 . The method of claim 3 , wherein the method further comprises: executing, after re-fetching the two instructions, the two instructions separately. 5 . The method of claim 3 , the method further comprising: determining that the exception was related to the first instruction of the two instructions; and recording the exception against the first instruction. 6 . The method of claim 1 , wherein the first instruction was fetched before the second instruction, the method further comprising: determining that the first instruction is to store data to a first area of memory; determining that the second instruction is to store data to a second area of memory that directly precedes the first area of memory; marking the fused instruction as reversed; and flipping an order of the first and second instructions in the fused instruction. 7 . The method of claim 1 , wherein the first and second instructions are D-form store instructions, and wherein determining that the two instructions meet the fusion criteria further comprises: determining that the first and second store instructions have the same base register; determining a store length for the first and second instructions, wherein the store length is the same for both the first and second instructions; and determining that a difference between a first offset of the first instruction and a second offset of the second instruction is equal to the store length. 8 . A system comprising: a processor configured to perform a method comprising: identifying two instructions in an execution pipeline of the processor, wherein the two instructions include a first instruction and a second instruction; determining that the two instructions meet a fusion criteria, wherein determining that the two instructions meet the fusion criteria comprises determining that the first and second instructions have a same instruction form and store data in contiguous memory locations; recoding, in response to determining that the two instructions meet the fusion criteria, the two instructions into a fused instruction; and executing the fused instruction. 9 . The system of claim 8 , wherein determining that the two instructions meet the fusion criteria further comprises: determining that the first and second instructions have a same instruction type, a same instruction length, and that they are consecutive instructions in a fetch queue. 10 . The system of claim 8 , wherein the method further comprises: identifying an exception while executing the fused instruction; flushing the fused instruction; and re-fetching the two instructions. 11 . The system of claim 10 , wherein the method further comprises: executing, after re-fetching the two instructions, the two instructions separately. 12 . The system of claim 10 , the method further comprising: determining that the exception was related to the first instruction; and recording the exception against the first instruction. 13 . The system of claim 8 , wherein the first instruction precedes the second instruction in a fetch queue, the method further comprising: determining that the first instruction is to store data to a first area of memory; determining that the second instruction is to store data to a second area of memory that directly precedes the first area of memory; marking the fused instruction as reversed; and flipping an order of the first and second instructions in the fused instruction. 14 . The system of claim 8 , wherein the first and second instructions are D-form store instructions, and wherein determining that the two instructions meet the fusion criteria further comprises: determining that the first and second instructions have the same base register; determining a store length for the first and second instructions, wherein the store length is the same for both the first and second instructions; and determining that a difference between a first offset of the first instruction and a second offset of the second instruction is equal to the store length. 15 . A processor comprising: an instruction fetch unit configured to: determine that two store instructions fetched from memory are fusible by determining that the two store instructions have a same instruction form, store data in contiguous memory locations, and are consecutive in a fetch queue; and recode the two store instructions into a fused store instruction; an instruction sequencing unit configured to: receive the fused store instruction from the instruction fetch unit; and store the fused store instruction as an entry in an issue queue, wherein a first half of the fused store instruction is stored to a first half of the issue queue, and a second half of the fused store instruction is stored to a second half of the issue queue; and a load-store unit configured to: receive the fused store instruction from the issue queue via a vector/scalar unit; generate a store address using the first half of the fused store instruction; store the store address in a store reorder queue; and store data identified by the second half of the fused store instruction in a store data queue. 16 . The processor of claim 15 , wherein the load-store unit is further configured to: identify an exception while executing the fused store instruction; flush the fused store instruction; and instruct the instruction fetch unit to re-fetch the two store instructions. 17 . The processor of claim 16 , wherein the processor is further configured to: execute, after re-fetching the two store instructions, the two store instructions as separate instructions. 18 . The processor of claim 15 , wherein the two store instructions include a first store instruction and a second store instruction, and wherein determining that the two store instructions are fusible further comprises: determining that the first and second store instructions have a same instruction type and a same instruction length. 19 . The processor of claim 15 , wherein the two store instructions include a first store instruction that was fetched before a second store instruction, and wherein the instruction fetch unit is further configured to: determine that the first store instruction is configured to store data to a first area of memory; determine that the second store instruction is configured to store data to a second area of memory that directly precedes the first area of memo

Assignees

Inventors

Classifications

  • Result writeback, i.e. updating the architectural state or memory · CPC title

  • Instruction operation extension or modification · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title

  • Implementation provisions of instruction buffers, e.g. prefetch buffer; banks · CPC title

  • LOAD or STORE instructions; Clear instruction · 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 US2022019436A1 cover?
Provided is a method for fusing store instructions in a microprocessor. The method includes identifying two instructions in an execution pipeline of a microprocessor. The method further includes determining that the two instructions meet a fusion criteria. In response to determining that the two instructions meet the fusion criteria, the two instructions are recoded into a fused instruction. Th…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/30181. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 20 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).