Processor with register stack engine that dynamically spills/fills physical registers to backing store
AssigneeIntel Corporation
InventorTUAN H. BUI
Life of this patent
Estimating the term…
Abstract
A processor for executing a code sequence that includes multiple function calls comprising a register file having a predetermined size and a means for allocating sets of registers on a per-function call basis. A reserve storage area is included and a means for saving a particular set of registers in the reserve storage area responsive to a function call that would overflow the predetermined size of the register file.
Claims21
A processor for executing a code sequence that includes multiple function calls comprising:
- a register file having a predetermined size;
- means for allocating sets of registers on a per-function call basis;
- a reserve storage area;
- and
- means for saving a particular set of registers in the reserve storage area responsive to a function call that would overflow the predetermined size of the register file.
A processor for running a program that calls multiple functions comprising:
- a register file;
- a reserved memory area;
- and
- a unit that allocates a set of registers for a function call in the program and deallocates the set of registers upon completion of the function, the unit saving a particular set of registers in the reserved area of the memory when a new function is called that requires allocation of a number of registers that exceeds an available number of registers of the register file.
A method of operation for a processor with a register file containing a plurality of registers, comprising the steps of:
- (a) executing an instruction to make a frame of registers available to a called procedure;
- (b) stalling the processor in response to an overflow condition wherein a sufficient number of registers are not available in the register file to accommodate the called procedure;
- and
- (c) performing a backing store operation to a dedicated memory to save registers that overflow the physical register file.
A processor for executing a program that includes procedure calls comprising:
- a register file comprising a stacked set of physical registers, each of the registers being segregated into different regions;
- means for allocating a frame of registers associated with a procedure call;
- a cache dedicated for use as a backing store memory associated with the register file;
- means for spilling/filling the contents of the physical registers between the register file and the cache;
- wherein an active region of registers contains values from a parent frame that have been spilled to the backing store memory, and a dirty region contains values from a previous frame that have not been spilled to the backing store memory.
Dependencies are inferred from the claim text.