Claims Analysis
Total Claims: 23
Claim 1
Independent Claim
166 words
An apparatus for providing instruction blocks in a microprocessor, comprising: an instruction cache having a cache access time greater than a clock cycle time employed by said microprocessor, said instruction cache including a plurality of banks wherein a particular instruction block is stored within one of said plurality of banks; and a branch prediction unit coupled to said instruction cache, wherein said branch prediction unit is configured to provide said instruction cache with a plurality of fetch addresses during a first clock cycle, said plurality of fetch addresses representing a portion of a predicted instruction stream, and wherein each of said plurality of fetch addresses accesses a different one of said plurality of banks; wherein said instruction cache is configured to provide a plurality of instruction blocks, and wherein each of said plurality of instruction blocks corresponds to one of said plurality of fetch addresses, and wherein said instruction cache is configured to provide said plurality of instruction blocks during a plurality of consecutive clock cycles.
Claim 2
Independent Claim
166 words
An apparatus for providing instruction blocks in a microprocessor, comprising: an instruction cache having a cache access time greater than a clock cycle time employed by said microprocessor, said instruction cache including a plurality of banks wherein a particular instruction block is stored within one of said plurality of banks; and a branch prediction unit coupled to said instruction cache, wherein said branch prediction unit is configured to provide said instruction cache with a plurality of fetch addresses during a first clock cycle, said plurality of fetch addresses representing a portion of a predicted instruction stream, and wherein each of said plurality of fetch addresses accesses a different one of said plurality of banks; wherein said instruction cache is configured to provide a plurality of instruction blocks, and wherein each of said plurality of instruction blocks corresponds to one of said plurality of fetch addresses, and wherein said instruction cache is configured to provide said plurality of instruction blocks during a plurality of consecutive clock cycles.
Claim 3
Dependent Claim
25 words
The apparatus as recited in claim 1 wherein said plurality of banks store alternate ones of a plurality of rows configured into said instruction cache.
Claim 4
Dependent Claim
60 words
The apparatus as recited in claim 1 wherein said branch prediction unit is configured to predict a second plurality of fetch addresses based upon said plurality of fetch addresses during said first clock cycle, and further configured to provide said second plurality of fetch addresses to said instruction cache during a second clock cycle subsequent to said first clock cycle.
Claim 5
Dependent Claim
25 words
The apparatus as recited in claim 3 wherein said second clock cycle occurs a number of consecutive clock cycles subsequent to said first clock cycle.
Claim 6
Dependent Claim
21 words
The apparatus as recited in claim 4 wherein said number is equal to a number of said plurality of fetch addresses.
Claim 7
Dependent Claim
34 words
The apparatus as recited in claim 3 wherein said branch prediction unit comprises a branch prediction storage configured to store a plurality of branch predictions corresponding to instruction blocks stored in said instruction cache.
Claim 8
Dependent Claim
52 words
The apparatus as recited in claim 6 wherein said branch prediction unit is configured to access said branch prediction storage with said plurality of fetch addresses, and wherein a plurality of said plurality of branch predictions received in response to said access are used to form said second plurality of fetch addresses.
Claim 9
Dependent Claim
69 words
The apparatus as recited in claim 7 wherein each one of said plurality of branch predictions is indexed within said branch prediction storage by one of said plurality of fetch addresses, and wherein said one of said plurality of branch predictions corresponds to a first instruction block, and wherein said first instruction block is non-consecutive with said one of said plurality of fetch addresses within said predicted instruction stream.
Claim 10
Dependent Claim
80 words
The apparatus as recited in claim 7 wherein said branch prediction unit further comprises a control unit coupled to receive said plurality of branch predictions from said branch prediction storage, and wherein said control unit is configured to form said second plurality of fetch addresses, and wherein each one of said second plurality of fetch addresses is formed from one of said plurality of branch predictions if said plurality of branch predictions access different ones of said plurality of banks.
Claim 11
Dependent Claim
39 words
The apparatus as recited in claim 9 wherein said control unit is further configured to detect a bank conflict between a first one of said plurality of branch predictions and a second one of said plurality of branch predictions.
Claim 12
Dependent Claim
21 words
The apparatus as recited in claim 1 wherein said cache access time comprises an integer multiple of said clock cycle time.
Claim 13
Dependent Claim
16 words
The apparatus as recited in claim 11 wherein said integer multiple is a power of two.
Claim 14
Independent Claim
136 words
A method for providing instruction blocks in a microprocessor, comprising: fetching a first plurality of addresses from an instruction cache during a first clock cycle, said instruction cache having a cache access time greater than a clock cycle time of said microprocessor, wherein each of said first plurality of addresses accesses a different one of a plurality of banks configured into said instruction cache; predicting a second plurality of addresses based upon said first plurality of addresses; checking said second plurality of addresses for bank conflicts, and modifying certain ones of said second plurality of addresses to eliminate bank conflicts; and providing a plurality of instruction blocks corresponding to said first plurality of addresses to said microprocessor, wherein each of said plurality of instruction blocks is provided during one of a plurality of consecutive clock cycles.
Claim 15
Independent Claim
136 words
A method for providing instruction blocks in a microprocessor, comprising: fetching a first plurality of addresses from an instruction cache during a first clock cycle, said instruction cache having a cache access time greater than a clock cycle time of said microprocessor, wherein each of said first plurality of addresses accesses a different one of a plurality of banks configured into said instruction cache; predicting a second plurality of addresses based upon said first plurality of addresses; checking said second plurality of addresses for bank conflicts, and modifying certain ones of said second plurality of addresses to eliminate bank conflicts; and providing a plurality of instruction blocks corresponding to said first plurality of addresses to said microprocessor, wherein each of said plurality of instruction blocks is provided during one of a plurality of consecutive clock cycles.
Claim 16
Dependent Claim
31 words
The method as recited in claim 13 wherein a particular one of said second plurality of addresses is predicted in response to a particular one of said first plurality of addresses.
Claim 17
Dependent Claim
38 words
The method as recited in claim 14 wherein said particular one of said first plurality of addresses and said particular one of said second plurality of addresses are non-consecutive in an instruction stream being executed by said microprocessor.
Claim 18
Dependent Claim
21 words
The method as recited in claim 13 wherein said cache access time comprises an integer multiple of said clock cycle time.
Claim 19
Dependent Claim
156 words
A microprocessor, comprising: an instruction cache having a cache access time greater than a clock cycle time employed by said microprocessor, said instruction cache including a plurality of banks wherein a particular instruction block is stored within one of said plurality of banks; a branch prediction unit coupled to said instruction cache, wherein said branch prediction unit is configured to provide said instruction cache with a plurality of fetch addresses during a first clock cycle, said plurality of fetch addresses representing a portion of a predicted instruction stream, and wherein each of said plurality of fetch addresses accesses a different one of said plurality of banks; and an instruction scan and decode unit coupled to receive a plurality of instructions from a plurality of instruction blocks corresponding to said plurality of fetch addresses, wherein said instruction scan and decode unit is configured to provide a plurality of decoded instructions in response to said plurality of instructions.
Claim 20
Dependent Claim
156 words
A microprocessor, comprising: an instruction cache having a cache access time greater than a clock cycle time employed by said microprocessor, said instruction cache including a plurality of banks wherein a particular instruction block is stored within one of said plurality of banks; a branch prediction unit coupled to said instruction cache, wherein said branch prediction unit is configured to provide said instruction cache with a plurality of fetch addresses during a first clock cycle, said plurality of fetch addresses representing a portion of a predicted instruction stream, and wherein each of said plurality of fetch addresses accesses a different one of said plurality of banks; and an instruction scan and decode unit coupled to receive a plurality of instructions from a plurality of instruction blocks corresponding to said plurality of fetch addresses, wherein said instruction scan and decode unit is configured to provide a plurality of decoded instructions in response to said plurality of instructions.
Claim 21
Dependent Claim
43 words
The microprocessor as recited in claim 17 wherein said instruction scan and decode unit is configured to detect an unpredicted branch instruction, and wherein said instruction scan and decode unit is configured to notify said branch prediction unit of said unpredicted branch instruction.
Claim 22
Dependent Claim
44 words
The microprocessor as recited in claim 17 further comprising a plurality of functional units coupled to receive said plurality of decoded instructions from said instruction scan and decode unit, wherein said plurality of functional units are configured to execute said plurality of decoded instructions.
Claim 23
Dependent Claim
48 words
The microprocessor as recited in claim 19 wherein said plurality of functional units are further configured to detect a mispredicted branch instruction within said plurality of decoded instructions, and wherein said plurality of functional units are configured to notify said branch prediction unit of said mispredicted branch instruction.