Patent US5819057A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5819057A Expired / Lapsed US ⏱️ 0.0 years remaining

Superscalar microprocessor including an instruction alignment unit with limited dispatch to decode units

Assignee: GlobalFoundries Inc
•
Filing: 1997-06-30
•
Granted: 1998-10-06
•
Expires: 2017-06-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A high performance superscalar microprocessor including an instruction alignment unit is provided which is capable of routing variable byte length instructions simultaneously to a plurality of decode units which form fixed issue positions within the superscalar microprocessor. The instruction alignment unit may be implemented with a relatively small number of cascaded levels of logic gates, thus accommodating very high frequencies of operation. In one embodiment, the superscalar microprocessor includes an instruction cache for storing a plurality of variable byte-length instructions and a predecode unit for generating predecode tags which identify the location of the start byte of each variable byte-length instruction. An instruction alignment unit is configured to channel a plurality of the variable byte-length instructions simultaneously to predetermined issue positions depending upon the locations of their corresponding start bytes in a cache line. The issue position or positions to which an instruction may be dispatched is limited depending upon the position of the instruction's start byte within a line. By limiting the number of issue positions to which a given instruction within a line may be dispatched, the number of cascaded levels of logic required to implement the instruction alignment unit may be advantageously reduced.

Inventors

  • 👤 David B. Witt
  • 👤 Thang Tran

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 08:17
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3818; G06F9/382; G06F9/30003; G06F9/30007; G06F9/30036; G06F9/30038; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3853; G06F9/3854; G06F9/3856; G06F9/3858

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.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-05 2002-04-06 2002-10-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-05 2006-04-06 2006-10-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-05 2010-04-06 2010-10-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag