Load lookahead prefetch for microprocessors
AssigneeInternational Business Machines Corporation
InventorsRichard Eickemeyer, Hung Le, Dung Nguyen, Benjamin Stolt, Brian Thompto
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorsRichard Eickemeyer, Hung Le, Dung Nguyen, Benjamin Stolt, Brian Thompto
Estimating the term…
The present invention allows a microprocessor to identify and speculatively execute future load instructions during a stall condition. This allows forward progress to be made through the instruction stream during the stall condition which would otherwise cause the microprocessor or thread of execution to be idle. The data for such future load instructions can be prefetched from a distant cache or main memory such that when the load instruction is re-executed (non speculative executed) after the stall condition expires, its data will reside either in the L1 cache, or will be enroute to the processor, resulting in a reduced execution latency. When an extended stall condition is detected, load lookahead prefetch is started allowing speculative execution of instructions that would normally have been stalled. In this speculative mode, instruction operands may be invalid due to source loads that miss the L1 cache, facilities not available in speculative execution mode, or due to speculative instruction results that are not available via forwarding and are not written to the architected registers. A set of status bits are used to dynamically keep track of the dependencies between instructions in the pipeline and a bit vector tracks invalid architected facilities with respect to the speculative instruction stream. Both sources of information are used to identify load instructions with valid operands for calculating the load address. If the operands are valid, then a load prefetch operation is started to retrieve data from the cache ahead of time such that it can be available for the load instruction when it is non-speculatively executed.
A method for speculatively executing instructions in a microprocessor which commits results of non speculative instructions to at least one architected facility, said method comprising the steps of:
A data processing system provides for speculative execution of instructions by a microprocessor non speculative execution of instructions and commits results of said non speculative instructions to at least one architected facility, comprising:
A computer program product resident on a computer readable media that controls speculative execution of instructions in a microprocessor that executes non-speculative instructions and commits results of said non speculative instructions to at least one architected facility, said computer program product, comprising:
A data processing apparatus that provides for speculative execution of instructions by a microprocessor, which executes non speculative instructions and commits results of said non speculative instructions to at least one architected facility, comprising:
A data processing apparatus according to claim 39 further comprising:
A data processing apparatus that provides for speculative execution of instructions by a microprocessor, which executes non speculative instructions and commits results of said non speculative instructions to at least one architected facility, comprising:
Dependencies are inferred from the claim text.