← Back to Patent Explorer
US5471633A Expired / Lapsed US ⏱️ 0.0 years remaining

Idiom recognizer within a register alias table

Assignee: Intel Corp
•
Filing: 1994-03-01
•
Granted: 1995-11-28
•
Expires: 2014-03-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A register alias table unit (RAT) with an idiom recognition mechanism for overriding partial width conditions stalls is described. A partial width stall condition occurs during the RAT renaming process when a logical source register being renamed is larger than the corresponding physical source register pointed to by a renaming table. An idiom recognizer detects uops that zero their logical destination register and sets and clears zero bits in an iRAT array accordingly. The zero bits indicate which portions of an entry's physical source register are known to be zeros. A partial width stall override mechanism overrides a partial width stall condition when the zero bits for the physical source register causing the partial width stall indicate that the "missing" portion of the physical source register contains zeros. The performance of a microprocessor implementing such a RAT renaming mechanism with an idiom recognizer is improved because common partial width stalls are avoided.

Inventors

  • 👤 Robert P. Colwell
  • 👤 Andrew F. Glew
  • 👤 David B. Papworth
  • 👤 Glenn J. Hinton
  • 👤 David W. Clift

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 23:47
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3824; G06F9/30098; G06F9/30105; G06F9/30112; G06F9/3826; G06F9/3828; G06F9/3834; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3856; G06F9/3858

Claims Analysis

Total Claims: 65
Claim 1
Independent Claim 328 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: array means for renaming said current set of logical registers to said current set of physical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; size comparison means, coupled to said array means, for comparing said logical register sizes to said physical register sizes; partial width stall means, coupled to said size comparison means and said array means, for stalling renaming of a first logical register by said array means when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array means, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 2
Dependent Claim 328 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: array means for renaming said current set of logical registers to said current set of physical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; size comparison means, coupled to said array means, for comparing said logical register sizes to said physical register sizes; partial width stall means, coupled to said size comparison means and said array means, for stalling renaming of a first logical register by said array means when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array means, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 3
Dependent Claim 50 words
The apparatus of claim 1 further comprising: zero extension means, coupled to said array means and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 4
Dependent Claim 46 words
The apparatus of claim 2 further comprising: idiom recognizer means, coupled to said array means, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said zero bits to indicate which portions of said logical registers contain zeros.
Claim 5
Dependent Claim 70 words
The apparatus of claim 3 further comprising: invalidating means, coupled to said array means and said partial width stall means, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall means, said array means only renaming individual logical registers of the current set of logical registers whose associated valid bits are in a valid state.
Claim 6
Dependent Claim 34 words
The apparatus of claim 4 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said array means renames said current set of logical registers simultaneously.
Claim 7
Dependent Claim 15 words
The apparatus of claim 5 wherein said current set of logical registers are integer registers.
Claim 8
Dependent Claim 24 words
The apparatus of claim 6 wherein said array means also for independently renaming high byte and low byte partial widths of said logical registers.
Claim 9
Dependent Claim 464 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: low bank array means for renaming said logical registers that are either low byte logical registers or logical registers that are larger than byte size, said low bank array means also for providing a low bank physical register size and a low bank zero bit for each of said physical registers, wherein said logical registers have logical register sizes and said low bank zero bits for indicating whether a most significant portion of said logical registers contains zeros; high bank array means, coupled to said low bank array means, for renaming said logical registers that are high byte logical registers to said physical registers, said high bank array means also for providing a high bank physical register size and a high bank zero bit for each of said physical registers, wherein said high bank zero bits for indicating whether a high byte of said logical registers contain zeros; size comparison means, coupled to said high bank array means and said low bank array means, for comparing said logical register sizes to said high bank physical register sizes and said low bank physical register sizes; partial width stall means, coupled to said size comparison means, said high bank array means, and said low bank array means, for stalling renaming of a first logical register by said low bank array means when a first logical register size is larger than either a first high bank physical register size or a first low bank physical register size, wherein the smaller of said first high bank physical register size and said first low bank physical register size corresponds to a first partial width register to which said first logical register would otherwise be renamed, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 10
Dependent Claim 464 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: low bank array means for renaming said logical registers that are either low byte logical registers or logical registers that are larger than byte size, said low bank array means also for providing a low bank physical register size and a low bank zero bit for each of said physical registers, wherein said logical registers have logical register sizes and said low bank zero bits for indicating whether a most significant portion of said logical registers contains zeros; high bank array means, coupled to said low bank array means, for renaming said logical registers that are high byte logical registers to said physical registers, said high bank array means also for providing a high bank physical register size and a high bank zero bit for each of said physical registers, wherein said high bank zero bits for indicating whether a high byte of said logical registers contain zeros; size comparison means, coupled to said high bank array means and said low bank array means, for comparing said logical register sizes to said high bank physical register sizes and said low bank physical register sizes; partial width stall means, coupled to said size comparison means, said high bank array means, and said low bank array means, for stalling renaming of a first logical register by said low bank array means when a first logical register size is larger than either a first high bank physical register size or a first low bank physical register size, wherein the smaller of said first high bank physical register size and said first low bank physical register size corresponds to a first partial width register to which said first logical register would otherwise be renamed, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 11
Dependent Claim 55 words
The apparatus of claim 8 further comprising: zero extension means, coupled to said high bank and low bank array means and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 12
Dependent Claim 46 words
The apparatus of claim 9 further comprising: idiom recognizer means, coupled to said array means, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said zero bits to indicate which portions of said logical registers contain zeros.
Claim 13
Dependent Claim 85 words
The apparatus of claim 10 further comprising: invalidating means, coupled to said high bank array means, said low bank array means, and said partial width stall means, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall means, said high bank array means and said low bank array means only renaming individual logical registers of said current set of logical registers whose associated valid bits are in a valid state.
Claim 14
Dependent Claim 42 words
The apparatus of claim 11 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said high bank array means and said low bank array means rename said current set of logical registers simultaneously.
Claim 15
Dependent Claim 15 words
The apparatus of claim 12 wherein said current set of logical registers are integer registers.
Claim 16
Dependent Claim 340 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: an array for renaming said current set of logical registers to said current set of physical registers by storing rename values corresponding to said physical registers in array locations associated with said logical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; a size comparator, coupled to said array, for comparing said logical register sizes to said physical register sizes; a partial width stall detector, coupled to said size comparator and said array, for stalling renaming of a first logical register by said array when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion contains of said first logical register zeros.
Claim 17
Dependent Claim 340 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: an array for renaming said current set of logical registers to said current set of physical registers by storing rename values corresponding to said physical registers in array locations associated with said logical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; a size comparator, coupled to said array, for comparing said logical register sizes to said physical register sizes; a partial width stall detector, coupled to said size comparator and said array, for stalling renaming of a first logical register by said array when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion contains of said first logical register zeros.
Claim 18
Dependent Claim 49 words
The apparatus of claim 14 further comprising: a zero extender, coupled to said array and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 19
Dependent Claim 45 words
The apparatus of claim 15 further comprising: an idiom recognizer, coupled to said array, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said zero bits to indicate which portions of said logical registers contain zeros.
Claim 20
Dependent Claim 69 words
The apparatus of claim 16 further comprising: an invalidating circuit, coupled to said array and said partial width stall detector, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall detector, said array only renaming individual logical registers of the current set of logical registers whose associated valid bits are in a valid state.
Claim 21
Dependent Claim 34 words
The apparatus of claim 17 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said array means renames said current set of logical registers simultaneously.
Claim 22
Dependent Claim 15 words
The apparatus of claim 18 wherein said current set of logical registers are integer registers.
Claim 23
Dependent Claim 23 words
The apparatus of claim 19 wherein said array also for independently renaming high byte and low byte partial widths of said logical registers.
Claim 24
Dependent Claim 506 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: a low bank array for renaming said logical registers that are either low byte logical registers or logical registers that are larger than byte size, said low bank array renaming by storing rename values corresponding to said physical registers in low bank array locations associated with said logical registers, said low bank array also for providing a low bank physical register size and a low bank zero bit for each of said physical registers, wherein said logical registers have logical register sizes and said low bank zero bits for indicating whether a most significant portion of said logical registers contains zeros; a high bank array, coupled to said low bank array, for renaming said logical registers that are high byte logical registers to said physical registers, said high bank array renaming by storing rename values corresponding to said physical registers in high bank array locations associated with said high byte logical registers, said high bank array also for providing a high bank physical register size and a high bank zero bit for each of said physical registers, wherein said high bank zero bits for indicating whether a high byte of said logical registers contain zeros; a size comparator, coupled to said high bank array and said low bank array, for comparing said logical register sizes to said high bank physical register sizes and said low bank physical register sizes; a partial width stall detector, coupled to said size comparator, said high bank array, and said low bank array, for stalling renaming of a first logical register by said low bank array when a first logical register size is larger than either a first high bank physical register size or a first low bank physical register size, wherein the smaller of said first high bank physical register size and said first low bank physical register size corresponds to a first partial width register to which said first logical register would otherwise be renamed, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 25
Dependent Claim 506 words
In a mechanism for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, an apparatus for selectively overriding partial width stalls of said renaming mechanism, said apparatus comprising: a low bank array for renaming said logical registers that are either low byte logical registers or logical registers that are larger than byte size, said low bank array renaming by storing rename values corresponding to said physical registers in low bank array locations associated with said logical registers, said low bank array also for providing a low bank physical register size and a low bank zero bit for each of said physical registers, wherein said logical registers have logical register sizes and said low bank zero bits for indicating whether a most significant portion of said logical registers contains zeros; a high bank array, coupled to said low bank array, for renaming said logical registers that are high byte logical registers to said physical registers, said high bank array renaming by storing rename values corresponding to said physical registers in high bank array locations associated with said high byte logical registers, said high bank array also for providing a high bank physical register size and a high bank zero bit for each of said physical registers, wherein said high bank zero bits for indicating whether a high byte of said logical registers contain zeros; a size comparator, coupled to said high bank array and said low bank array, for comparing said logical register sizes to said high bank physical register sizes and said low bank physical register sizes; a partial width stall detector, coupled to said size comparator, said high bank array, and said low bank array, for stalling renaming of a first logical register by said low bank array when a first logical register size is larger than either a first high bank physical register size or a first low bank physical register size, wherein the smaller of said first high bank physical register size and said first low bank physical register size corresponds to a first partial width register to which said first logical register would otherwise be renamed, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 26
Dependent Claim 54 words
The apparatus of claim 21 further comprising: a zero extender, coupled to said high bank and low bank arrays and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 27
Dependent Claim 50 words
The apparatus of claim 22 further comprising: an idiom recognizer, coupled to said high bank and low bank arrays, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said zero bits to indicate which portions of said logical registers contain zeros.
Claim 28
Dependent Claim 82 words
The apparatus of claim 23 further comprising: an invalidating circuit, coupled to said high bank array, said low bank array, and said partial width stall detector, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall detector, said high bank array and said low bank array only renaming individual logical registers of said current set of logical registers whose associated valid bits are in a valid state.
Claim 29
Dependent Claim 40 words
The apparatus of claim 24 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said high bank array and said low bank array rename said current set of logical registers simultaneously.
Claim 30
Dependent Claim 15 words
The apparatus of claim 25 wherein said current set of logical registers are integer registers.
Claim 31
Dependent Claim 370 words
A microprocessor comprising: a bus interface unit for interfacing with a bus; an instruction decode and fetch unit coupled to said bus interface unit for decoding a current set of operations for a given cycle; a plurality of execution units coupled to said instruction decode and fetch means for simultaneously executing the decoded operations; and means for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being specified by a current set of operations, said renaming means including, array means for renaming said current set of logical registers to said current set of physical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; size comparison means, coupled to said array means, for comparing said logical register sizes to said physical register sizes; partial width stall means, coupled to said size comparison means and said array means, for stalling renaming of a first logical register by said array means when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array means, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 32
Dependent Claim 370 words
A microprocessor comprising: a bus interface unit for interfacing with a bus; an instruction decode and fetch unit coupled to said bus interface unit for decoding a current set of operations for a given cycle; a plurality of execution units coupled to said instruction decode and fetch means for simultaneously executing the decoded operations; and means for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being specified by a current set of operations, said renaming means including, array means for renaming said current set of logical registers to said current set of physical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; size comparison means, coupled to said array means, for comparing said logical register sizes to said physical register sizes; partial width stall means, coupled to said size comparison means and said array means, for stalling renaming of a first logical register by said array means when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array means, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 33
Dependent Claim 50 words
The microprocessor of claim 27 further comprising: zero extension means, coupled to said array means and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 34
Dependent Claim 46 words
The microprocessor of claim 28 further comprising: idiom recognizer means, coupled to said array means, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said zero bits to indicate which portions of said logical registers contain zeros.
Claim 35
Dependent Claim 70 words
The microprocessor of claim 29 further comprising: invalidating means, coupled to said array means and said partial width stall means, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall means, said array means only renaming individual logical registers of the current set of logical registers whose associated valid bits are in a valid state.
Claim 36
Dependent Claim 34 words
The microprocessor of claim 30 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said array means renames said current set of logical registers simultaneously.
Claim 37
Dependent Claim 15 words
The microprocessor of claim 31 wherein said current set of logical registers are integer registers.
Claim 38
Dependent Claim 24 words
The microprocessor of claim 32 wherein said array means also for independently renaming high byte and low byte partial widths of said logical registers.
Claim 39
Dependent Claim 395 words
A microprocessor comprising: a bus interface unit for interfacing with a bus; an instruction decode and fetch unit coupled to said bus interface unit for decoding a current set of operations for a given cycle; a plurality of execution units coupled to the instruction decode and fetch unit for simultaneously executing the decoded operations; and a renaming circuit coupled to said instruction decode and fetch unit, said renaming circuit for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being specified by a current set of operations, said renaming circuit including, an array for renaming said current set of logical registers to said current set of physical registers by storing rename values corresponding to said physical registers in array locations associated with said logical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; a size comparator, coupled to said array, for comparing said logical register sizes to said physical register sizes; a partial width stall detector, coupled to said size comparator and said array, for stalling renaming of a first logical register by said array when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 40
Dependent Claim 395 words
A microprocessor comprising: a bus interface unit for interfacing with a bus; an instruction decode and fetch unit coupled to said bus interface unit for decoding a current set of operations for a given cycle; a plurality of execution units coupled to the instruction decode and fetch unit for simultaneously executing the decoded operations; and a renaming circuit coupled to said instruction decode and fetch unit, said renaming circuit for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being specified by a current set of operations, said renaming circuit including, an array for renaming said current set of logical registers to said current set of physical registers by storing rename values corresponding to said physical registers in array locations associated with said logical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; a size comparator, coupled to said array, for comparing said logical register sizes to said physical register sizes; a partial width stall detector, coupled to said size comparator and said array, for stalling renaming of a first logical register by said array when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 41
Dependent Claim 49 words
The microprocessor of claim 34 further comprising: a zero extender, coupled to said array and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 42
Dependent Claim 45 words
The microprocessor of claim 35 further comprising: an idiom recognizer, coupled to said array, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said zero bits to indicate which portions of said logical registers contain zeros.
Claim 43
Dependent Claim 69 words
The microprocessor of claim 36 further comprising: an invalidating circuit, coupled to said array and said partial width stall detector, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall detector, said array only renaming individual logical registers of the current set of logical registers whose associated valid bits are in a valid state.
Claim 44
Dependent Claim 34 words
The microprocessor of claim 37 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said array means renames said current set of logical registers simultaneously.
Claim 45
Dependent Claim 15 words
The microprocessor of claim 38 wherein said current set of logical registers are integer registers.
Claim 46
Dependent Claim 23 words
The microprocessor of claim 39 wherein said array also for independently renaming high byte and low byte partial widths of said logical registers.
Claim 47
Dependent Claim 375 words
A computer system comprising: bus means for providing a communication interface; memory means coupled to said bus means for storing instructions and computer data; interface means coupled to said bus means for providing data input and data output to interface with a user; and microprocessor means coupled to said bus means for executing said instructions and processing said computer data, said microprocessor means having a means for renaming a current set of logical registers to a current set of physical registers, said current set of logical registers being associated with a current set of operations, said renaming means including, array means for renaming said current set of logical registers to said current set of physical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; size comparison means, coupled to said array means, for comparing said logical register sizes to said physical register sizes; partial width stall means, coupled to said size comparison means and said array means, for stalling renaming of a first logical register by said array means when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array means, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 48
Dependent Claim 375 words
A computer system comprising: bus means for providing a communication interface; memory means coupled to said bus means for storing instructions and computer data; interface means coupled to said bus means for providing data input and data output to interface with a user; and microprocessor means coupled to said bus means for executing said instructions and processing said computer data, said microprocessor means having a means for renaming a current set of logical registers to a current set of physical registers, said current set of logical registers being associated with a current set of operations, said renaming means including, array means for renaming said current set of logical registers to said current set of physical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; size comparison means, coupled to said array means, for comparing said logical register sizes to said physical register sizes; partial width stall means, coupled to said size comparison means and said array means, for stalling renaming of a first logical register by said array means when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array means, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and partial width stall override means, coupled to said partial width stall means, for overriding said stalling of said array means when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 49
Dependent Claim 51 words
The computer system of claim 41 further comprising: zero extension means, coupled to said array means and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 50
Dependent Claim 49 words
The computer system of claim 42 further comprising: idiom recognizer means, coupled to said array means, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said sets of zero bits to indicate which portions of said logical registers contain zeros.
Claim 51
Dependent Claim 71 words
The computer system of claim 43 further comprising: invalidating means, coupled to said array means and said partial width stall means, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall means, said array means only renaming individual logical registers of the current set of logical registers whose associated valid bits are in a valid state.
Claim 52
Dependent Claim 35 words
The computer system of claim 44 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said array means renames said current set of logical registers simultaneously.
Claim 53
Dependent Claim 16 words
The computer system of claim 45 wherein said current set of logical registers are integer registers.
Claim 54
Dependent Claim 25 words
The computer system of claim 46 wherein said array means also for independently renaming high byte and low byte partial widths of said logical registers.
Claim 55
Dependent Claim 385 words
A computer system comprising: a bus for providing communication interface; a memory coupled to said bus for storing instructions and computer data; an interface circuit coupled to said bus for providing data input and data output to interface with a user; and a microprocessor coupled to said bus means for executing said instructions and processing said computer data, said microprocessor having a renaming mechanism for renaming a current set of logical registers to a current set of physical registers, said current set of logical registers being associated with a current set of operations, said renaming mechanism including, an array for renaming said current set of logical registers to said current set of physical registers by storing rename values corresponding to said physical registers in array locations associated with said logical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; a size comparator, coupled to said array, for comparing said logical register sizes to said physical register sizes; a partial width stall detector, coupled to said size comparator and said array, for stalling renaming of a first logical register by said array when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 56
Dependent Claim 385 words
A computer system comprising: a bus for providing communication interface; a memory coupled to said bus for storing instructions and computer data; an interface circuit coupled to said bus for providing data input and data output to interface with a user; and a microprocessor coupled to said bus means for executing said instructions and processing said computer data, said microprocessor having a renaming mechanism for renaming a current set of logical registers to a current set of physical registers, said current set of logical registers being associated with a current set of operations, said renaming mechanism including, an array for renaming said current set of logical registers to said current set of physical registers by storing rename values corresponding to said physical registers in array locations associated with said logical registers, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, wherein each of said physical registers has a corresponding set of zero bits for indicating whether predetermined portions of said logical registers contain zeros; a size comparator, coupled to said array, for comparing said logical register sizes to said physical register sizes; a partial width stall detector, coupled to said size comparator and said array, for stalling renaming of a first logical register by said array when said first logical register is of larger size than a corresponding first partial width register to which said first logical register would otherwise be renamed by said array, said first logical register being one of said current set of logical registers, said first partial width register being part of a first physical register, said first physical register being one of said current set of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; and a partial width stall overrider, coupled to said partial width stall detector, for overriding said stalling of said array when a first set of zero bits corresponding to said first logical register indicates that said second contiguous portion of said first logical register contains zeros.
Claim 57
Dependent Claim 50 words
The computer system of claim 48 further comprising: a zero extender, coupled to said array and said physical registers, for zeroing said third contiguous portion of said first physical register when said first set of zero bits indicates that said second contiguous portion of said first logical register contains zeros.
Claim 58
Dependent Claim 46 words
The computer system of claim 49 further comprising: an idiom recognizer, coupled to said array, for detecting operations that zero either all or partial widths of said logical registers and setting and clearing said zero bits to indicate which portions of said logical registers contain zeros.
Claim 59
Dependent Claim 70 words
The computer system of claim 50 further comprising: an invalidating circuit, coupled to said array and said partial width stall detector, for selectively setting to an invalid state a current set of valid bits associated with said logical registers in response to said partial width stall detector, said array only renaming individual logical registers of the current set of logical registers whose associated valid bits are in a valid state.
Claim 60
Dependent Claim 35 words
The computer system of claim 51 wherein operations of said current set of operations are issued simultaneously but maintain program code order and wherein said array means renames said current set of logical registers simultaneously.
Claim 61
Dependent Claim 16 words
The computer system of claim 52 wherein said current set of logical registers are integer registers.
Claim 62
Dependent Claim 24 words
The computer system of claim 53 wherein said array also for independently renaming high byte and low byte partial widths of said logical registers.
Claim 63
Dependent Claim 250 words
In a mechanism utilizing an array memory for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, a method for detecting and selectively overriding partial width stall conditions, said method comprising the steps of: temporarily assigning said current set of logical registers to said current set of physical registers; comparing said logical register sizes to said physical register sizes; detecting a partial width stall condition when a first logical register is of larger size than a first partial width register to which said first logical register is temporarily assigned, said first partial width register being part of a first physical register of said current said of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; overriding said partial width stall condition when said second contiguous portion of said first logical register contains zeros; and renaming said current set of logical registers to said current set of physical registers when a partial width stall condition is detected but overridden.
Claim 64
Dependent Claim 250 words
In a mechanism utilizing an array memory for renaming a current set of logical registers to a current set of physical registers of an extended register set, said current set of logical registers being associated with a current set of operations, wherein said logical registers and said physical registers have partial width registers, wherein said logical registers have logical register sizes and said physical registers have physical register sizes, a method for detecting and selectively overriding partial width stall conditions, said method comprising the steps of: temporarily assigning said current set of logical registers to said current set of physical registers; comparing said logical register sizes to said physical register sizes; detecting a partial width stall condition when a first logical register is of larger size than a first partial width register to which said first logical register is temporarily assigned, said first partial width register being part of a first physical register of said current said of physical registers, wherein said first logical register has a first and second contiguous portions, said first partial width register corresponds to said first contiguous portion, said first physical register has a third portion contiguous with said first partial width register, and said third portion corresponds to said second portion; overriding said partial width stall condition when said second contiguous portion of said first logical register contains zeros; and renaming said current set of logical registers to said current set of physical registers when a partial width stall condition is detected but overridden.
Claim 65
Dependent Claim 19 words
The method of claim 55 wherein said renaming also occurs when a partial width stall condition is not detected.

References Cited (Backward Citations)

US4992934A Cited
US4992938A Cited
US5107415A Cited
US5197132A Cited
US5280593A Cited
US5355457A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-11-27 1999-05-29 1999-11-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-11-27 2003-05-29 2003-11-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-11-27 2007-05-29 2007-11-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag