Method and apparatus for dynamically allocating registers in a windowed architecture
AssigneeSun Microsystems, Inc.
InventorsSantosh G. Abraham, Yuan C. Chou
Life of this patent
Estimating the term…
Abstract
One embodiment of the present invention provides a system that dynamically allocates physical registers in a windowed processor architecture. The system includes a physical register file and a register map that maps architectural registers defined within an executing program to physical registers within the physical register file. The system also includes a window allocation mechanism that allocates a new name space for a register window without allocating physical registers for the register window, thereby allowing the physical registers to be dynamically allocated as needed instead of being allocated at window initialization time.
Claims25
An apparatus that dynamically allocates physical registers in a windowed processor architecture, comprising:
- a processor;
- a physical register file within the processor;
- a register map within the processor that is configured to map architectural registers defined within an executing program to physical registers within the physical register file;
- and
- a window allocation mechanism within the processor that is configured to allocate a new name space for a register window without allocating physical registers for the register window, thereby without checking if there are sufficient physical registers available;
- a register renaming mechanism within the processor that is configured to:
- allocate physical registers dynamically as needed instead of allocating all of the registers in a register window at register window initialization time, wherein allocating physical registers involves checking if there are sufficient registers available, and
- if necessary, to spill allocated registers to memory.
A method for dynamically allocating physical registers in a windowed processor architecture that includes a physical register file and a register map that is configured to map architectural registers defined within an executing program to physical registers within the physical register file, the method comprising:
- encountering a register window allocation event during execution of a program;
- in response to the register window allocation event, a window allocation mechanism allocates a new name space for a register window without allocating physical registers for the register window, thereby without checking if there are sufficient physical registers available;
- allocating physical registers dynamically as needed instead of allocating all of the registers in a register window at register window initialization time, wherein allocating physical registers involves checking if there are sufficient registers available;
- and
- if necessary, spilling allocated registers to memory.
A computer system that dynamically allocates physical registers in a windowed processor architecture, comprising:
- a processor;
- a memory;
- a physical register file within the processor;
- a register map within the processor that is configured to map architectural registers defined within an executing program to physical registers within the physical register file;
- a window allocation mechanism within the processor that is configured to allocate a new name space for a register window without allocating physical registers for the register window, thereby without checking if there are sufficient physical registers available;
- allocating physical registers dynamically as needed instead of allocating all of the registers in a register window at register window initialization time, wherein allocating physical registers involves checking if there are sufficient registers available;
- and
- if necessary, spilling allocated registers to memory.
Dependencies are inferred from the claim text.