Register stack engine having speculative load/store modes
First Claim
Patent Images
1. A computer system comprising:
- a memory;
a register file coupled to the memory through a memory channel, the register file to store data for one or more procedures in one or more frames, respectively; and
a register stack engine to monitor activity on the memory channel and to transfer data between selected frames of the register file and the memory responsive to available bandwidth on the memory channel, wherein the register stack engine includes a first pointer to indicate a first location in a current frame of the register stack and a second pointer to indicate an oldest dirty register in the register stack.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system is provided having a register stack engine to manage data transfers between a backing store and a register stack. The computer system includes a processor and a memory coupled to the processor through a memory channel. The processor includes a register stack to store data from one or more procedures in one or more frames, respectively. The register stack engine monitors activity on the memory channel and transfers data between selected frames of the register stack and a backing store in the memory responsive to the available bandwidth on the memory channel.
38 Citations
22 Claims
-
1. A computer system comprising:
-
a memory;
a register file coupled to the memory through a memory channel, the register file to store data for one or more procedures in one or more frames, respectively; and
a register stack engine to monitor activity on the memory channel and to transfer data between selected frames of the register file and the memory responsive to available bandwidth on the memory channel, wherein the register stack engine includes a first pointer to indicate a first location in a current frame of the register stack and a second pointer to indicate an oldest dirty register in the register stack. - View Dependent Claims (2, 3, 4, 5, 6, 7)
the register stack engine includes a third pointer to indicate an oldest clean register in the register stack. -
3. The computer system of claim 1, wherein
the memory includes a backing store, and the register stack engine transfers data between the selected frames and the backing store. -
4. The computer system of claim 1, wherein
registers of the register file are mapped to the current frame and an inactive frame, and the register stack engine transfers data between the registers mapped to the inactive frame and the backing store. -
5. The computer system of claim 1, wherein
registers of the register file are mapped to the current frame and an inactive frame, and the registers mapped to the inactive frame are designated as clean or dirty, according to whether or not data stored in the registers has been spilled to the memory. -
6. The computer system of claim 5, wherein
the register stack engine transfers data from a dirty register to a corresponding location in the backing store when bandwidth is available on the memory channel. -
7. The computer system of claim 5, wherein
the register stack engine transfers data to a clean register from a corresponding location in the backing store when bandwidth is available on the memory channel.
-
-
8. A computer system comprising:
-
a memory;
a register file coupled to the memory through a memory channel, the register file to store data for one or more procedures in one or more frames, respectively, and wherein registers of the register file are mapped to a current frame and an inactive frame; and
a register stack engine to monitor activity on the memory channel and to transfer data between selected frames of the register file and the memory responsive to available bandwidth on the memory channel, the register stack engine to transfer data between registers in the inactive frame and a backing store. - View Dependent Claims (9, 10, 11, 12)
the registers mapped to the inactive frame are designated as clean or dirty, according to whether data stored in the registers has or has not been spilled to the memory. -
10. The computer system of claim 9, wherein
the memory includes the backing store. -
11. The computer system of claim 10, wherein
the register stack engine transfers data from a dirty register to a corresponding location in the backing store when bandwidth is available on the memory channel. -
12. The computer system of claim 10, wherein
the register stack engine transfers data to a clean register from a corresponding location in the backing store when bandwidth is available on the memory channel.
-
-
13. A method for managing data in a register stack comprising:
-
designating registers in the register stack as clean or dirty, according to whether data in the registers has been spilled to a backing store;
monitoring operations on a memory channel;
spilling data from a current oldest dirty register to the backing store when capacity is available on the memory channel;
filling data from the backing store to a current oldest clean register when capacity is available on the memory channel; and
updating a pointer to indicate a new oldest clean. register when data is filled to the current oldest clean register. - View Dependent Claims (14)
updating another pointer to indicate a new oldest dirty register when data is spilled from the current oldest dirty register.
-
-
15. A computer system comprising:
-
a memory system;
a register file to store data for an active procedure and one or more inactive procedures; and
a register stack engine to transfer data between registers associated with the one or more inactive procedures and the memory system, responsive to available bandwidth to the memory system, wherein the register stack engine includes a first pointer to track a next inactive register to spill to the memory system and a second pointer to track a next inactive register to fill from the memory system responsive to the available bandwidth to the memory system. - View Dependent Claims (16, 17, 18, 19)
a load/store unit, and wherein the register stack engine monitors the load/store unit to determine the available bandwidth to the memory system.
-
-
17. The computer system of claim 15, wherein
the register stack engine transfers data for the one or more inactive procedures responsive to a mode status indicator. -
18. The computer system of claim 17, wherein
the mode status indicator indicates a lazy mode, a store intensive mode, a load intensive mode, or an eager mode, and the register stack engine operates in accordance with the respective mode status indicator. -
19. The computer system of claim 18, wherein
the mode status indicator is set under software control.
-
20. A computer system comprising:
-
a memory system;
a register file to store data for an active procedure and one or more inactive procedures; and
a register stack engine to transfer data between registers associated with the one or more inactive procedures and the memory system, responsive to available bandwidth to the memory system, wherein the register stack engine transfers data for inactive procedures responsive to a mode status indicator and operates in a lazy mode, a store intensive mode, a load intensive mode, or an eager mode according to the mode status indicator. - View Dependent Claims (21, 22)
a load/store unit, and wherein the register stack engine monitors the load/store unit to determine the available bandwidth to the memory system.
-
-
22. The computer system of claim 20, wherein
the mode status indicator is set under software control.
Specification