Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache
First Claim
1. An apparatus for performing branch prediction, comprising:
- a branch prediction storage coupled to receive a first address of a first instruction block, wherein said branch prediction storage is configured to store a plurality of branch predictions, and wherein said branch prediction storage is configured to select and output a first branch prediction from said plurality of branch predictions responsive to said first address, said first branch prediction predicting a second address of a second instruction block non-consecutive with said first instruction block within a predicted instruction stream, and wherein a branch instruction having said second address as a target address is within a third instruction block between said first instruction block and said second instruction block within said predicted instruction stream; and
a prediction control unit coupled to said branch prediction storage, wherein said prediction control unit is configured to update said plurality of branch predictions responsive to execution of said predicted instruction stream.
0 Assignments
0 Petitions
Accused Products
Abstract
An apparatus including a banked instruction cache and a branch prediction unit is provided. The banked instruction cache allows multiple instruction fetch addresses (comprising consecutive instruction blocks from the predicted instruction stream being executed by the microprocessor) to be fetched concurrently. The instruction cache provides an instruction block corresponding to one of the multiple fetch addresses to the instruction processing pipeline of the microprocessor during each consecutive clock cycle, while additional instruction fetch addresses from the predicted instruction stream are fetched. Preferably, the instruction cache includes at least a number of banks equal to the number of clock cycles consumed by an instruction cache access. In this manner, instructions may be provided during each consecutive clock cycle even though instruction cache access time is greater than the clock cycle time of the microprocessor.
45 Citations
20 Claims
-
1. An apparatus for performing branch prediction, comprising:
-
a branch prediction storage coupled to receive a first address of a first instruction block, wherein said branch prediction storage is configured to store a plurality of branch predictions, and wherein said branch prediction storage is configured to select and output a first branch prediction from said plurality of branch predictions responsive to said first address, said first branch prediction predicting a second address of a second instruction block non-consecutive with said first instruction block within a predicted instruction stream, and wherein a branch instruction having said second address as a target address is within a third instruction block between said first instruction block and said second instruction block within said predicted instruction stream; and a prediction control unit coupled to said branch prediction storage, wherein said prediction control unit is configured to update said plurality of branch predictions responsive to execution of said predicted instruction stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for performing branch prediction comprising:
-
storing a first branch prediction for a first branch instruction within a first instruction block in a second storage location within a branch prediction storage, said second storage location corresponding to a second instruction block prior to said first instruction block in a predicted instruction stream; fetching said second instruction block; and fetching said first branch prediction from said branch prediction storage responsive to said fetching said second instruction block, whereby a third instruction block subsequent to said first instruction block is predicted in response to fetching said second instruction block. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A microprocessor comprising:
-
a branch prediction unit configured to provide a branch prediction indicating a first instruction block responsive to a fetch address, wherein said first instruction block is non-consecutive to a second instruction block identified by said fetch address within a predicted instruction stream, and wherein a branch instruction having a target address indicating said first instruction block is within a third instruction block between said first instruction block and said second instruction block within said predicted instruction stream; and an instruction cache coupled to said branch prediction unit, wherein said instruction cache is configured to store instruction bytes. - View Dependent Claims (18, 19)
-
-
20. A computer system comprising:
-
a microprocessor configured to provide a branch prediction for a first instruction block responsive to a fetch address, wherein said first instruction block is non-consecutive to a second instruction block identified by said fetch address within a predicted instruction stream, and wherein a branch instruction having a target address indicating said first instruction block is within a third instruction block between said first instruction block and said second instruction block within said prediction instructed stream; and an input/output (I/O) device coupled to said microprocessor and to another computer system, wherein said I/O device is configured to communicate between said microprocessor and said another computer system.
-
Specification