Techniques for performing store-to-load forwarding
AssigneeAdvanced Micro Devices, Inc.
InventorsJohn M. King, Matthew T. Sobel
Life of this patent
Estimating the term…
Abstract
A technique for performing store-to-load forwarding is provided. The technique includes determining a virtual address for data to be loaded for the load instruction, identifying a matching store instruction from one or more store instruction memories by comparing a virtual-address-based comparison value for the load instruction to one or more virtual-address-based comparison values of one or more store instructions, determining a physical address for the load instruction, and validating the load instruction based on a comparison between the physical address of the load instruction and a physical address of the matching store instruction.
Claims20
A method for performing store-to-load forwarding for a load instruction, the method comprising:
- determining a virtual address for data to be loaded for the load instruction;
- identifying a matching store instruction from one or more store instruction memories by comparing a virtual-address-based comparison value for the load instruction to one or more virtual-address-based comparison values of one or more store instructions;
- placing the load instruction into a load waiting buffer in response to detecting that the matching store instruction has not yet received an address translation when initiating validation of the load instruction;
- and
- validating the load instruction based on a comparison between a physical address of the load instruction and a physical address of the matching store instruction.
A load/store subsystem for performing store-to-load forwarding for a load instruction, the load/store subsystem comprising:
- one or more store instruction memories;
- and
- a load/store unit configured to:
- determine a virtual address for data to be loaded for the load instruction;
- identify a matching store instruction from the one or more store instruction memories by comparing a virtual-address-based comparison value for the load instruction to one or more virtual-address-based comparison values of one or more store instructions;
- place the load instruction into a load waiting buffer in response to detecting that the matching store instruction has not yet received an address translation when initiating validation of the load instruction;
- and
- validate the load instruction based on a comparison between the physical address of the load instruction and a physical address of the matching store instruction.
A processing unit for performing store-to-load forwarding for a load instruction, the processing unit comprising:
- one or more store instruction memories;
- a load/store unit configured to:
- determine a virtual address for data to be loaded for the load instruction;
- identify a matching store instruction from the one or more store instruction memories by comparing a virtual-address-based comparison value for the load instruction to one or more virtual-address-based comparison values of one or more store instructions;
- place the load instruction into a load waiting buffer in response to detecting that the matching store instruction has not yet received an address translation when initiating validation of the load instruction;
- and
- validate the load instruction based on a comparison between the physical address of the load instruction and a physical address of the matching store instruction;
- and
- a data translation lookaside buffer configured to translate the virtual address for the load instruction to the physical address for the load instruction.
Dependencies are inferred from the claim text.