Claims Analysis
Total Claims: 17
Claim 1
Independent Claim
220 words
A superscalar microprocessor comprising: an instruction cache including a plurality of positions for storing a plurality of variable byte-length instructions to be dispatched for execution; a predecode unit coupled to said instruction cache for generating at least one predecode tag associated with each variable byte-length instruction, wherein said at least one predecode tag identifies a starting position of said associated variable byte-length instruction within said plurality of positions of said instruction cache; a plurality of decode units configured to decode said variable-byte length instructions, wherein each of said plurality of decode units is associated with a fixed issue position; and an instruction alignment unit coupled between said instruction cache and said plurality of decode units, wherein said instruction alignment unit includes a first multiplexer channel configured to route a first variable byte-length instruction having a starting position selected from a first subset of said positions of said instruction cache to a first of said decode units, and a second multiplexer channel configured to route a second variable byte-length instruction having a starting position selected from a second subset of said positions of said instruction cache to a second of said decode units; wherein said positions within said first subset of positions of said instruction cache are exclusive of said positions within said second subset of positions of said instruction cache.
Claim 2
Dependent Claim
220 words
A superscalar microprocessor comprising: an instruction cache including a plurality of positions for storing a plurality of variable byte-length instructions to be dispatched for execution; a predecode unit coupled to said instruction cache for generating at least one predecode tag associated with each variable byte-length instruction, wherein said at least one predecode tag identifies a starting position of said associated variable byte-length instruction within said plurality of positions of said instruction cache; a plurality of decode units configured to decode said variable-byte length instructions, wherein each of said plurality of decode units is associated with a fixed issue position; and an instruction alignment unit coupled between said instruction cache and said plurality of decode units, wherein said instruction alignment unit includes a first multiplexer channel configured to route a first variable byte-length instruction having a starting position selected from a first subset of said positions of said instruction cache to a first of said decode units, and a second multiplexer channel configured to route a second variable byte-length instruction having a starting position selected from a second subset of said positions of said instruction cache to a second of said decode units; wherein said positions within said first subset of positions of said instruction cache are exclusive of said positions within said second subset of positions of said instruction cache.
Claim 3
Dependent Claim
29 words
The superscalar microprocessor as recited in claim 1 wherein each of said plurality of said decode units is capable of decoding a predetermined subset of an x86 instruction set.
Claim 4
Dependent Claim
32 words
The superscalar microprocessor as recited in claim 1 wherein said plurality of variable byte-length instructions are organized in lines within said instruction cache, wherein a line includes a predetermined number of bytes.
Claim 5
Dependent Claim
52 words
The superscalar microprocessor as recited in claim 1 wherein said first multiplexer channel is configured to route said first variable byte-length instruction to said first of said decode units simultaneously with a time at which said second multiplexer channel routes said second variable byte-length instruction to said second of said decode units.
Claim 6
Dependent Claim
34 words
The superscalar microprocessor as recited in claim 1 wherein said predecode tag associated with each variable byte length instruction is indicative of a position of an opcode byte of said variable byte length instruction.
Claim 7
Dependent Claim
34 words
The superscalar microprocessor as recited in claim 1 wherein said predecode tag associated with each variable byte length instruction is indicative of a position of a start byte of said variable byte length instruction.
Claim 8
Dependent Claim
26 words
The superscalar microprocessor as recited in claim 1 further comprising a plurality of functional units configured to receive output signals from said plurality of decode units.
Claim 9
Dependent Claim
23 words
The superscalar microprocessor as recited in claim 7 wherein said output signals from said plurality of said decode units include bit-encoded execution instructions.
Claim 10
Dependent Claim
59 words
The superscalar microprocessor as recited in claim 7 further comprising a plurality of reservation stations coupled to said plurality of decode units and to said plurality of functional units, wherein said plurality of reservation stations are configured to temporarily store said output signals from said plurality of decode units prior to issuance to said plurality of said functional units.
Claim 11
Dependent Claim
23 words
The superscalar microprocessor as recited in claim 7 wherein a dedicated functional unit is associated with each of said plurality of decode units.
Claim 12
Dependent Claim
25 words
The superscalar microprocessor as recited in claim 1 further comprising a reorder buffer coupled to said plurality of decode units for storing speculatively-executed instruction results.
Claim 13
Independent Claim
141 words
A method for aligning instructions within a superscalar microprocessor comprising the steps of: storing a plurality of variable byte-length instructions within an instruction cache; predecoding said plurality of variable byte-length instructions to thereby provide a tag indicative of a starting position of each of said plurality of said variable byte-length instructions; detecting predecode tags associated with a line of instructions within said instruction cache; routing a first instruction having a starting position selected from a first subset of positions within a cache line to a first decode unit; and routing a second instruction having a starting position selected from a second subset of positions within said cache line to a second decode unit; wherein said positions within said first subset of positions within said cache line are exclusive of said positions within said second subset of positions within said cache line.
Claim 14
Independent Claim
141 words
A method for aligning instructions within a superscalar microprocessor comprising the steps of: storing a plurality of variable byte-length instructions within an instruction cache; predecoding said plurality of variable byte-length instructions to thereby provide a tag indicative of a starting position of each of said plurality of said variable byte-length instructions; detecting predecode tags associated with a line of instructions within said instruction cache; routing a first instruction having a starting position selected from a first subset of positions within a cache line to a first decode unit; and routing a second instruction having a starting position selected from a second subset of positions within said cache line to a second decode unit; wherein said positions within said first subset of positions within said cache line are exclusive of said positions within said second subset of positions within said cache line.
Claim 15
Dependent Claim
27 words
The method as recited in claim 12 further comprising providing decoded output signals from said first and second decode units to corresponding first and second functional units.
Claim 16
Dependent Claim
16 words
The method as recited in claim 13 wherein said decoded output signals include bit-encoded execution instructions.
Claim 17
Dependent Claim
33 words
The method as recited in claim 14 further comprising temporarily storing said decoded output signals within corresponding reservation stations prior to issuance of said decoded output signals to said plurality of functional units.