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

Data processing system a method for performing register renaming having back-up capability

Assignee: Motorola Solutions Inc
•
Filing: 1993-01-04
•
Granted: 1997-12-02
•
Expires: 2013-01-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a data processing system, a method for performing register renaming with back-up capability. A register renaming apparatus (18) comprises a logical-physical (LP) register map (30), a free list (32), and an internal swap bus (90) for exchanging information between the two. The register renaming hardware (18) is connected to an instruction sequencer (12) and instruction decode/issue logic (16). Each time the decode/issue logic (16) decodes an instruction(s), the logical registers to be read index the LP map (30) to find the physical register "name" where their values can be found. The free list 32 is indexed by instruction slot numbers. Each free list cell (60-75) contains two physical register names a "last" and a "current", as well as pointer (80-83) designating which name is "current". As each write is done the "current" name is transferred to the LP map 30, and the previous physical register name in the LP map (30) is installed in the free list (32) in the place of the "last" name. The pointer (80) is then toggled so that the "last" becomes "current".

Inventors

  • 👤 Mitchell Alsup
  • 👤 Michael C. Becker

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 17:16
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3861; G06F9/3863; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3858

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 514 words
In a data processing system comprising: instruction sequencing means for decoding, issuing and routing a packet of instructions; execution means, coupled to said instruction sequencing means for executing a predetermined number of instructions in said packet of instructions; register storage means coupled to said execution means for storing a plurality of data operands in a predetermined number of physical registers; and register renaming means, coupled to said register storage means and said instruction sequencing means, having a logical to physical (LP) register map coupled to a free list, via an internal bus, said register renaming means receiving a predetermined number of logical registers numbers and control signals from said instruction sequencing means and for generating a plurality of logical to physical register mappings in response thereto; a method for maintaining a current set of physical register mappings occurring at each of a plurality of instruction issuance checkpoints, in response to said instruction sequencing means decoding a packet of instructions, said method comprising the steps of: initializing said LP register map by storing in each of a first set of register map cells and each of a first set of free cells a unique physical register name, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging, via said internal bus, each unique physical register name in a first group of destination registers, stored in said first set of register map cells, with an allocated physical register name from a first latch in a selected number of free cells, and toggling said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers, stored in said first set of register map cells, from said first set of register map cells into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is issued by said instruction sequencing means at a second instruction issuance checkpoint, by exchanging said new group of destination register names with a newly allocated physical register name from a first latch in each of a newly selected number of free cells, and toggling said bit in said control latch coupled to each of said newly selected number of free cells; and restoring said LP register map to a previous instruction issuance checkpoint designated by said instruction sequencing means by examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint, and searching for a first one of said control bits, for said free cells at said instruction issuance checkpoints issued between said previous instruction issuance checkpoint and said current checkpoint, having a complementary logic state, and toggling each of said control bits between said current instruction issuance checkpoint and said previous instruction issuance checkpoint designated by said instruction sequencing means.
Claim 2
Dependent Claim 514 words
In a data processing system comprising: instruction sequencing means for decoding, issuing and routing a packet of instructions; execution means, coupled to said instruction sequencing means for executing a predetermined number of instructions in said packet of instructions; register storage means coupled to said execution means for storing a plurality of data operands in a predetermined number of physical registers; and register renaming means, coupled to said register storage means and said instruction sequencing means, having a logical to physical (LP) register map coupled to a free list, via an internal bus, said register renaming means receiving a predetermined number of logical registers numbers and control signals from said instruction sequencing means and for generating a plurality of logical to physical register mappings in response thereto; a method for maintaining a current set of physical register mappings occurring at each of a plurality of instruction issuance checkpoints, in response to said instruction sequencing means decoding a packet of instructions, said method comprising the steps of: initializing said LP register map by storing in each of a first set of register map cells and each of a first set of free cells a unique physical register name, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging, via said internal bus, each unique physical register name in a first group of destination registers, stored in said first set of register map cells, with an allocated physical register name from a first latch in a selected number of free cells, and toggling said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers, stored in said first set of register map cells, from said first set of register map cells into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is issued by said instruction sequencing means at a second instruction issuance checkpoint, by exchanging said new group of destination register names with a newly allocated physical register name from a first latch in each of a newly selected number of free cells, and toggling said bit in said control latch coupled to each of said newly selected number of free cells; and restoring said LP register map to a previous instruction issuance checkpoint designated by said instruction sequencing means by examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint, and searching for a first one of said control bits, for said free cells at said instruction issuance checkpoints issued between said previous instruction issuance checkpoint and said current checkpoint, having a complementary logic state, and toggling each of said control bits between said current instruction issuance checkpoint and said previous instruction issuance checkpoint designated by said instruction sequencing means.
Claim 3
Dependent Claim 61 words
The method of claim 1 further comprising the steps of: determining, via said instruction sequencing means, whether one of more instructions in said first packet of instructions have completed execution; and decoding, via said instruction sequencing means, an instruction retire checkpoint to said register rename means to indicate completion of said one or more instructions in said first packet of instructions.
Claim 4
Dependent Claim 74 words
The method of claim 1 wherein said step of exchanging each unique physical register name in a first group of destination registers with an allocated physical register name from a first latch in a selected number of free cells is performed by said register rename means each time said instruction sequencing means issues a new instruction packet which alters a physical register mapping for any one of said predetermined number of logical registers numbers.
Claim 5
Dependent Claim 472 words
In a data processing system having instruction sequencing means for decoding a packet of instructions at each of a predetermined number of instruction issuance checkpoints, execution means coupled to said instruction sequencing means for executing instructions issued by said instruction sequencing means, and register renaming means, comprising a logical to physical (LP) map coupled to a free list, via an internal bus, said register renaming means mapping a predetermined number of logical register to a predetermined set of physical registers upon issuance by said instruction sequencing means of each of a plurality of instruction packets, where each instruction packet contains one or more instructions, a method for performing register renaming comprising the steps of: initializing said LP register map, in said register renaming means, by storing in each of a first set of register map cells in said LP register map, and each of a first set of free cells in said free list, a unique physical register name, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging each unique physical register name, for a first group of destination registers specified by a first instruction packet issued at a first instruction issuance checkpoint, stored in said first set of register map cells, with an allocated physical register name from a first latch in a selected number of free cells, and toggling said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers, stored in said first set of register map cells, from said first set of register map cells into a second set of register map cells, in response to said sequencing means decoding said first instruction packet; updating each of said free cells with a new group of destination register names, after a next instruction packet is issued by said instruction sequencing means at a second instruction issuance checkpoint, by exchanging said new group of destination register names with a newly allocated physical register name from a first latch in each of a newly selected number of free cells, and toggling said bit in said control latch coupled to each of said newly selected number of free cells; and restoring said LP register map to a designated instruction issuance checkpoint designated by said instruction sequencing means by examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint, and searching for a first one of said control bits, for said free cells at said instruction issuance checkpoints issued between said designated instruction issuance checkpoint and said current checkpoint, having a complementary logic state, and toggling each of said control bits between said current instruction issuance checkpoint and said designated instruction issuance checkpoint.
Claim 6
Dependent Claim 472 words
In a data processing system having instruction sequencing means for decoding a packet of instructions at each of a predetermined number of instruction issuance checkpoints, execution means coupled to said instruction sequencing means for executing instructions issued by said instruction sequencing means, and register renaming means, comprising a logical to physical (LP) map coupled to a free list, via an internal bus, said register renaming means mapping a predetermined number of logical register to a predetermined set of physical registers upon issuance by said instruction sequencing means of each of a plurality of instruction packets, where each instruction packet contains one or more instructions, a method for performing register renaming comprising the steps of: initializing said LP register map, in said register renaming means, by storing in each of a first set of register map cells in said LP register map, and each of a first set of free cells in said free list, a unique physical register name, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging each unique physical register name, for a first group of destination registers specified by a first instruction packet issued at a first instruction issuance checkpoint, stored in said first set of register map cells, with an allocated physical register name from a first latch in a selected number of free cells, and toggling said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers, stored in said first set of register map cells, from said first set of register map cells into a second set of register map cells, in response to said sequencing means decoding said first instruction packet; updating each of said free cells with a new group of destination register names, after a next instruction packet is issued by said instruction sequencing means at a second instruction issuance checkpoint, by exchanging said new group of destination register names with a newly allocated physical register name from a first latch in each of a newly selected number of free cells, and toggling said bit in said control latch coupled to each of said newly selected number of free cells; and restoring said LP register map to a designated instruction issuance checkpoint designated by said instruction sequencing means by examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint, and searching for a first one of said control bits, for said free cells at said instruction issuance checkpoints issued between said designated instruction issuance checkpoint and said current checkpoint, having a complementary logic state, and toggling each of said control bits between said current instruction issuance checkpoint and said designated instruction issuance checkpoint.
Claim 7
Dependent Claim 61 words
The method of claim 4 further comprising the steps of: determining, via said instruction sequencing means, whether one of more instructions in said first packet of instructions have completed execution; and issuing, via said instruction sequencing means, an instruction retire checkpoint to said register rename means to indicate completion of said one or more instructions in said first packet of instructions.
Claim 8
Dependent Claim 74 words
The method of claim 4 wherein said step of exchanging each unique physical register name in a first group of destination registers with an allocated physical register name from a first latch in a selected number of free cells is performed by said register rename means each time said instruction sequencing means issues a new instruction packet which alters a physical register mapping for any one of said predetermined number of logical registers numbers.
Claim 9
Dependent Claim 463 words
In a data processing system having instruction sequencing means for decoding a packet of instructions, execution means coupled to said instruction sequencing means for executing instructions issued by said instruction sequencing means, and register renaming means, comprising a logical to physical (LP) map and a free list, for mapping a predetermined number of logical register to a predetermined set of physical registers upon issuance by said instruction sequencing means of said packet of instructions, a method for performing register renaming, said method comprising the steps of: initializing said LP register map, in said register renaming means, by storing a unique physical register name into each of a first set of register map cells in said LP register map, and each of a first set of free cells in said free list, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging each unique physical register name in a first group of destination registers, stored in said first set of register map cells, with an allocated physical register name from a first latch in a selected number of free cells, and toggling said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers, stored in said first set of register map cells, from said first set of register map cells into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is issued by said instruction sequencing means at a second instruction issuance checkpoint, by exchanging said new group of destination register names with a newly allocated physical register name from a first latch in a newly selected number of free cells, and toggling said bit in said control latch coupled to each of said newly selected number of free cells; determining, via said instruction sequencing means, whether one of more instructions in said first packet of instructions have completed execution, and issuing an instruction retire checkpoint to said register rename means to indicate completion of said one or more instructions in said first packet of instructions; and restoring said LP register map to a branch instruction issuance checkpoint by examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint, and searching for a first one of said control bits of a previous instruction issuance checkpoint having a complementary logic state, and toggling each of said control bits between said current instruction issuance checkpoint and said branch instruction issuance checkpoint.
Claim 10
Dependent Claim 463 words
In a data processing system having instruction sequencing means for decoding a packet of instructions, execution means coupled to said instruction sequencing means for executing instructions issued by said instruction sequencing means, and register renaming means, comprising a logical to physical (LP) map and a free list, for mapping a predetermined number of logical register to a predetermined set of physical registers upon issuance by said instruction sequencing means of said packet of instructions, a method for performing register renaming, said method comprising the steps of: initializing said LP register map, in said register renaming means, by storing a unique physical register name into each of a first set of register map cells in said LP register map, and each of a first set of free cells in said free list, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging each unique physical register name in a first group of destination registers, stored in said first set of register map cells, with an allocated physical register name from a first latch in a selected number of free cells, and toggling said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers, stored in said first set of register map cells, from said first set of register map cells into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is issued by said instruction sequencing means at a second instruction issuance checkpoint, by exchanging said new group of destination register names with a newly allocated physical register name from a first latch in a newly selected number of free cells, and toggling said bit in said control latch coupled to each of said newly selected number of free cells; determining, via said instruction sequencing means, whether one of more instructions in said first packet of instructions have completed execution, and issuing an instruction retire checkpoint to said register rename means to indicate completion of said one or more instructions in said first packet of instructions; and restoring said LP register map to a branch instruction issuance checkpoint by examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint, and searching for a first one of said control bits of a previous instruction issuance checkpoint having a complementary logic state, and toggling each of said control bits between said current instruction issuance checkpoint and said branch instruction issuance checkpoint.
Claim 11
Dependent Claim 74 words
The method of claim 7 wherein said step of exchanging each unique physical register name in a first group of destination registers with an allocated physical register name from a first latch in a selected number of free cells is performed by said register rename means each time said instruction sequencing means issues a new instruction packet which alters a physical register mapping for any one of said predetermined number of logical registers numbers.
Claim 12
Dependent Claim 374 words
In a data processing system comprising: instruction sequencing means for decoding, issuing and routing a packet of instructions; execution means, coupled to said instruction sequencing means for executing a predetermined number of instructions in said packet of instructions; register storage means coupled to said execution means for storing a plurality of data operands in a predetermined number of physical registers; and register renaming means, coupled to said register storage means and said instruction sequencing means, having a logical to physical (LP) register map coupled to a free list, via an internal bus, said register renaming means receiving a predetermined number of logical registers numbers and control signals from said instruction sequencing means and for generating a plurality of logical to physical register mappings in response thereto; a method for maintaining a current set of physical register mappings occurring at each of a plurality of instruction issuance checkpoints, in response to said instruction sequencing means decoding a packet of instructions, said method comprising the steps of: initializing said LP register map by storing in each of a first set of register map cells and each of a first set of free cells a unique physical register name, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging, via said internal bus, a unique physical register name for a first group of destination registers, stored in a first set of register map cells, with an allocated physical register name stored in a selected number of free cells, and modifying said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is decoded by said instruction sequencing means at a second instruction issuance checkpoint; and restoring said LP register map to a previous instruction issuance checkpoint designated by said instruction sequencing means upon an occurrence of a predefined processing condition.
Claim 13
Dependent Claim 374 words
In a data processing system comprising: instruction sequencing means for decoding, issuing and routing a packet of instructions; execution means, coupled to said instruction sequencing means for executing a predetermined number of instructions in said packet of instructions; register storage means coupled to said execution means for storing a plurality of data operands in a predetermined number of physical registers; and register renaming means, coupled to said register storage means and said instruction sequencing means, having a logical to physical (LP) register map coupled to a free list, via an internal bus, said register renaming means receiving a predetermined number of logical registers numbers and control signals from said instruction sequencing means and for generating a plurality of logical to physical register mappings in response thereto; a method for maintaining a current set of physical register mappings occurring at each of a plurality of instruction issuance checkpoints, in response to said instruction sequencing means decoding a packet of instructions, said method comprising the steps of: initializing said LP register map by storing in each of a first set of register map cells and each of a first set of free cells a unique physical register name, and setting a bit in a control latch coupled to each of said free cells to a first logic value; exchanging, via said internal bus, a unique physical register name for a first group of destination registers, stored in a first set of register map cells, with an allocated physical register name stored in a selected number of free cells, and modifying said bit in said control latch coupled to each of said selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is decoded by said instruction sequencing means at a second instruction issuance checkpoint; and restoring said LP register map to a previous instruction issuance checkpoint designated by said instruction sequencing means upon an occurrence of a predefined processing condition.
Claim 14
Dependent Claim 61 words
The method of claim 9 further comprising the steps of: determining, via said instruction sequencing means, whether one of more instructions in said first packet of instructions have completed execution; and decoding, via said instruction sequencing means, an instruction retire checkpoint to said register rename means to indicate completion of said one or more instructions in said first packet of instructions.
Claim 15
Dependent Claim 80 words
The method of claim 9 wherein said step of exchanging a unique physical register name for a first group of destination registers, stored in a first set of register map cells, with an allocated physical register name stored in a selected number of free cells is performed by said register rename means each time said instruction sequencing means issues a new instruction packet which alters a physical register mapping for any one of said predetermined number of logical registers numbers.
Claim 16
Dependent Claim 107 words
The method of claim 9 wherein said step of restoring said LP register map to said previous instruction sequencing means comprises the steps of: examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint; searching for a first one of said control bits, for said free cells at said instruction issuance checkpoints issued between said previous instruction issuance checkpoint and said current checkpoint, having a complementary logic state; and toggling each of said control bits between said current instruction issuance checkpoint and said previous instruction issuance checkpoint designated by said instruction sequencing means as a last valid issuance checkpoint.
Claim 17
Dependent Claim 362 words
In a data processing system comprising: instruction sequencing means for decoding, issuing and routing a packet of instructions; execution means, coupled to said instruction sequencing means for executing a predetermined number of instructions in said packet of instructions; register storage means coupled to said execution means for storing a plurality of data operands in a predetermined number of physical registers; and register renaming means, coupled to said register storage means and said instruction sequencing means, having a logical to physical (LP) register map coupled to a free list, via an internal bus, said register renaming means receiving a predetermined number of logical registers numbers and control signals from said instruction sequencing means and for generating a plurality of logical to physical register mappings in response thereto; a method for maintaining a current set of physical register mappings occurring at each of a plurality of instruction issuance checkpoints, in response to said instruction sequencing means decoding a packet of instructions, said method comprising the steps of: initializing said LP register map by storing in each of a first set of register map cells and each of a first set of free cells a unique physical register name, and settling a bit in a control latch coupled to each of said free cells to a first logic value; exchanging, via said internal bus, a unique physical register name for a first group of destination registers, stored in a first set of register map cells, with an allocated physical register name stored in a selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is decoded by said instruction sequencing means at a second instruction issuance checkpoint; and restoring said LP register map to a previous instruction issuance checkpoint designated by said instruction sequencing means as a last valid issuance checkpoint, upon an occurrence of a predefined processing condition.
Claim 18
Dependent Claim 362 words
In a data processing system comprising: instruction sequencing means for decoding, issuing and routing a packet of instructions; execution means, coupled to said instruction sequencing means for executing a predetermined number of instructions in said packet of instructions; register storage means coupled to said execution means for storing a plurality of data operands in a predetermined number of physical registers; and register renaming means, coupled to said register storage means and said instruction sequencing means, having a logical to physical (LP) register map coupled to a free list, via an internal bus, said register renaming means receiving a predetermined number of logical registers numbers and control signals from said instruction sequencing means and for generating a plurality of logical to physical register mappings in response thereto; a method for maintaining a current set of physical register mappings occurring at each of a plurality of instruction issuance checkpoints, in response to said instruction sequencing means decoding a packet of instructions, said method comprising the steps of: initializing said LP register map by storing in each of a first set of register map cells and each of a first set of free cells a unique physical register name, and settling a bit in a control latch coupled to each of said free cells to a first logic value; exchanging, via said internal bus, a unique physical register name for a first group of destination registers, stored in a first set of register map cells, with an allocated physical register name stored in a selected number of free cells, while simultaneously copying each unique physical register name in a first group of source registers into a second set of register map cells, in response to said sequencing means decoding a first packet of instructions at a first instruction issuance checkpoint; updating each of said free cells with a new group of destination register names, after a next packet of instructions is decoded by said instruction sequencing means at a second instruction issuance checkpoint; and restoring said LP register map to a previous instruction issuance checkpoint designated by said instruction sequencing means as a last valid issuance checkpoint, upon an occurrence of a predefined processing condition.
Claim 19
Dependent Claim 61 words
The method of claim 13 further comprising the steps of: determining, via said instruction sequencing means, whether one of more instructions in said first packet of instructions have completed execution; and decoding, via said instruction sequencing means, an instruction retire checkpoint to said register rename means to indicate completion of said one or more instructions in said first packet of instructions.
Claim 20
Dependent Claim 47 words
The method of claim 13 further comprising the step of modifying said bit in said control latch coupled to each of said selected number of free cells, in response to said sequencing means decoding said packet of instruction at each of said plurality of instruction issuance checkpoints.
Claim 21
Dependent Claim 105 words
The method of claim 15 wherein said step of restoring said LP register map to said previous instruction issuance checkpoint comprises the steps of: examining a logic state of said control bit of said free cells at a current instruction issuance checkpoint; searching for a first one of said control bits, for said free cells at each of said instruction issuance checkpoints issued between said previous instruction issuance checkpoint and said current instruction issuance checkpoint, having a complementary logic state; and toggling each of said control bits between said current instruction issuance checkpoint and said previous instruction issuance checkpoint designated by said instruction sequencing means.

References Cited (Backward Citations)

US4794518A Cited
US4725873A Cited
US4725947A Cited
US4901233A Cited
US5226164A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-12-01 2001-06-02 2001-12-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-12-01 2005-06-02 2005-12-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-12-01 2009-06-02 2009-12-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag