Predicting a sequence of variable instruction lengths from previously identified length pattern indexed by an instruction fetch address
First Claim
1. A microprocessor configured to execute variable length instructions comprising:
- a cache array configured to receive a fetch address and in response output a corresponding plurality of instruction bytes;
an instruction length calculation unit coupled to said cache array and configured to receive said plurality of instruction bytes, wherein said calculation unit is configured to generate a particular instruction length corresponding to a particular instruction within said plurality of instruction bytes; and
a pattern detector coupled to said cache array and said calculation unit, wherein said pattern detector is configured to store a plurality of fetch addresses and a plurality of instruction length sequences, wherein each stored sequence corresponds to a particular stored fetch address, wherein said pattern decoder is configured to output a particular predicted instruction length sequence useable to align instructions for decoding in response to matching a newly received fetch address with a particular fetch address stored in the pattern detector.
1 Assignment
0 Petitions
Accused Products
Abstract
An instruction cache having a pattern detector for use in predicting the length of variable length instructions in a microprocessor. The instruction cache comprises an instruction length calculation unit and the pattern detector. The pattern detector is configured with a content addressable memory and update logic. The content addressable memory stores fetch addresses and instruction lengths calculated by the calculation unit. The content addressable memory compares particular fetch addresses that it receives with fetch addresses already stored and outputs corresponding predicted instruction length sequences. The content addressable memory may receive, compare, and store instruction lengths or instruction bytes in addition to, or in lieu of, fetch addresses. A neural network or other type of memory configuration may be used in place of the content addressable memory.
45 Citations
19 Claims
-
1. A microprocessor configured to execute variable length instructions comprising:
-
a cache array configured to receive a fetch address and in response output a corresponding plurality of instruction bytes; an instruction length calculation unit coupled to said cache array and configured to receive said plurality of instruction bytes, wherein said calculation unit is configured to generate a particular instruction length corresponding to a particular instruction within said plurality of instruction bytes; and a pattern detector coupled to said cache array and said calculation unit, wherein said pattern detector is configured to store a plurality of fetch addresses and a plurality of instruction length sequences, wherein each stored sequence corresponds to a particular stored fetch address, wherein said pattern decoder is configured to output a particular predicted instruction length sequence useable to align instructions for decoding in response to matching a newly received fetch address with a particular fetch address stored in the pattern detector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for predicting instruction lengths for variable length instructions comprising:
-
reading a plurality of instruction bytes from a cache using fetch addresses; generating instruction lengths for instructions within said pluralities of instruction bytes; storing said fetch addresses and said instruction lengths; comparing a particular fetch address with said stored fetch addresses; generating a plurality of predicted instruction lengths by selecting stored instruction lengths corresponding to said particular fetch address; and verifying said plurality of predicted instruction lengths. - View Dependent Claims (17, 18, 19)
-
Specification