Handling and fusing load instructions in a processor

US11249757B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11249757-B1
Application numberUS-202016993552-A
CountryUS
Kind codeB1
Filing dateAug 14, 2020
Priority dateAug 14, 2020
Publication dateFeb 15, 2022
Grant dateFeb 15, 2022

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 system, processor, and/or technique configured to: determine whether two or more load instructions are fusible for execution in a load store unit as a fused load instruction; in response to determining that two or more load instructions are fusible, transmit information to process the two or more fusible load instructions into a single entry of an issue queue; issue the information to process the two or more fusible load instructions from the single entry in the issue queue as a fused load instruction to the load store unit using a single issue port of the issue queue, wherein the fused load instruction contains the information to process the two or more fusible load instructions; execute the fused load instruction in the load store unit; and write back data obtained by executing the fused load instruction simultaneously to multiple entries in the register file.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer system for processing information, the computer system comprising: at least one processor having circuitry and logic to process instructions, the processor comprising: an instruction fetch unit having circuitry and logic to process instructions, the instruction fetch unit configured to fetch instructions; an instruction issue unit having circuitry and logic to process instructions, the instruction issue unit having an issue queue having a plurality of entries to hold the instructions and a plurality of issue ports to issue the instructions held in one or more of the plurality of issue queue entries; one or more execution units having circuitry and logic to process instructions, the one or more execution units including a load store unit to process one or more load and store instructions; and a register file to hold data for processing by the processor, the register file having a plurality of entries to hold the data, wherein the processor is configured to: determine whether two or more load instructions are fusible for execution in the load store unit as a fused load instruction; in response to determining that two or more load instructions are fusible for execution in the load store unit as a fused load instruction, transmit information to process the two or more fusible load instructions over multiple data lanes to the issue queue where the information to process each fusible load instruction is transmitted over a single data lane and into a single entry of the plurality of entries in the issue queue; issue the information to process the two or more fusible load instructions from the single entry in the issue queue as a fused load instruction to the load store unit using a single issue port of the plurality of issue ports in the issue queue, wherein the fused load instruction contains the information to process the two or more fusible load instructions; execute the fused load instruction in the load store unit; and write back data obtained by executing the fused load instruction simultaneously to multiple entries in the register file. 2. The system of claim 1 , wherein the processor is further configured to determine whether two or more load instructions are fusible by detecting if the load instructions are consecutive load instructions, have address register fields that are the same, and immediate fields that are consecutive to each other in a data cache. 3. The system of claim 1 , wherein the processor is further configured to determine whether two or more load instruction sequences are ascending fusible load instructions or descending fusible load instructions. 4. The system of claim 1 , wherein the processor is further configured to: in response to determining that two or more load instructions are fusible, mark the two or more fusible load instructions as fusible; and thereafter, transmit the information to process the two or more fusible instructions into the single entry in the issue queue. 5. The system of claim 1 , wherein in response to executing the fused load instruction in the load store unit, the load store unit is configured to read out multiple consecutive data chunks from a data cache in the load store unit. 6. The system of claim 1 , wherein the processor is further configured to: transmit the two or more fusible load instructions to a dispatch unit; assign by the dispatch unit an instruction identifier to each fusible load instruction; and dispatch the information to process the two or more fusible load instructions to the single entry in the issue queue over multiple lanes where a single lane is used for each fusible load instruction dispatched to the single entry in the issue queue. 7. The system of claim 6 , wherein the processor is further configured to: dispatch multiple instruction identifiers to an instruction completion unit having a completion table for tracking the completion of instructions, where each instruction identifier corresponds to one of the two or more fusible load instructions; write each dispatched instruction identifier to one of a plurality of entries in the completion table; and mark the entries in the completion table corresponding to the two or more fusible load instructions to complete together. 8. The system of claim 1 , wherein the processor is further configured to write a first portion of the fused load instruction to a first entry in the register file using a register file write port associated with the load store unit and write a second portion of the fused load instruction to a second entry in the register file using a register file write port associated with an execution unit other than the load store unit. 9. The system of claim 1 , wherein the processor is further configured to: detect an exception while processing the fused load instruction, and in response to detecting an exception while processing the fused load instruction, the processor is configured to execute the two or more fusible load instructions forming the fused load instruction separately. 10. The system of claim 1 , wherein the processor is configured to: process two-consecutive load-immediate instructions as a fusible load instruction, in response to detecting two consecutive load-immediate instructions as a fusible load instruction, transmit the two fusible load instructions into a single entry of the plurality of entries in the issue queue; issue the two fusible load instructions from the single entry in the issue queue as a fused load instruction to the load store unit using a single issue port of the plurality of issue ports in the issue queue, wherein the fused load instruction contains the two fusible load instructions; execute the fused load instruction in the load store unit; and write back data obtained by executing the fused load instruction simultaneously to two entries in the register file. 11. A computer-executable method for processing information, the computer-executable method comprising: fetching instructions in a processor, the processor having circuitry and logic to process the instructions; determining whether two or more load instructions are fusible for executing in a load store unit of a the processor as a fused load instruction; in response to determining that two or more load instructions are fusible for execution in the load store unit as a fused load instruction, transmitting information to process the two or more fusible load instructions over multiple data lanes to the issue queue where the information to process each fusible load instruction is transmitted over a single data lane to the issue queue and into a single entry of a plurality of entries in an issue queue; issuing the information to process the two or more fusible load instructions from the single entry in the issue queue as a fused load instruction to the load store unit using a single issue port in the issue queue, wherein the fused load instruction contains the information to process the two or more fusible load instructions; executing the fused load instruction in the load store unit; and writing data obtained by executing the fused load instruction simultaneously to multiple entries in a register file. 12. The computer-executable method of claim 11 , wherein determining whether two or more load instructions are fusible comprises detecting if the load instructions are consecutive load instructions, have real address fields that are the same, and immediate fields that are consecutive to each other in a data cache. 13. The computer-executable method of claim 11 , further comprising: in response to determining that two or more load instructions are fusible, marking th

Assignees

Inventors

Classifications

  • Instruction operation extension or modification · CPC title

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

  • LOAD or STORE instructions; Clear instruction · CPC title

  • of compound instructions · CPC title

  • Program synchronisation; Mutual exclusion, e.g. by means of semaphores · 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 US11249757B1 cover?
A system, processor, and/or technique configured to: determine whether two or more load instructions are fusible for execution in a load store unit as a fused load instruction; in response to determining that two or more load instructions are fusible, transmit information to process the two or more fusible load instructions into a single entry of an issue queue; issue the information to process…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/30043. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 15 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).