IP Library › Granted Patent US 10,564,977
Granted Patent B2
US 10,564,977 · App. 15/489,933 · Granted Feb 18, 2020

Selective register allocation

Inventors: Michael K. Gschwind (Chappaqua, NY); Chung-Lung K. Shum (Wappingers Falls, NY); Timothy J. Slegel (Staatsburg, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/384G06F9/3863G06F9/3842
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,564,977
App. No.
15/489,933
Granted
Feb 18, 2020
Kind
B2
Abstract

Selective register allocation. Based on determining that an unused physical register is unavailable for allocation, a physical register to be used for allocation is chosen from a selective group of physical registers. The selective group of physical registers is associated with a snapshot of one type of snapshot selected from a plurality of types of snapshots. The snapshot maps physical registers to architected registers. The physical register chosen for allocation is allocated.

Claims (38)

1. A computer program product for facilitating processing within a computing environment, the computer program product comprising:

a computer readable storage medium readable by a processing circuit and storing instructions for performing a method comprising:

determining that an unused physical register is unavailable for allocation;

choosing, based on determining that the unused physical register is unavailable, a physical register to be used for allocation from a selective group of physical registers, the selective group of physical registers being associated with a snapshot of one type of snapshot selected from a plurality of types of snapshots, wherein the snapshot maps physical registers to architected registers, and wherein the plurality of types of snapshots includes a restoration snapshot to be used to restore based on a register reload request and a recovery snapshot to be used to recover from an event that alters an execution path; and

allocating the physical register chosen for allocation.

2. The computer program product of claim 1 , wherein registers associated with another type of snapshot are excluded from the selective group of physical registers.

3. The computer program product of claim 2 , wherein the other type of snapshot comprises the recovery snapshot to be used to recover from the event that alters the execution path.

4. The computer program product of claim 3 , wherein the event comprises a branch or a jump that alters the execution path.

5. The computer program product of claim 1 , wherein the one type of snapshot comprises the restoration snapshot to be used to restore based on the register reload request.

6. The computer program product of claim 5 , wherein the register reload request is associated with a save request.

7. The computer program product of claim 1 , wherein the choosing the physical register comprises:

selecting a snapshot from one or more snapshots of the one type of snapshot; and

choosing the physical register from one or more physical registers included in the snapshot selected.

8. The computer program product of claim 7 , wherein the selecting the snapshot comprises selecting an oldest snapshot of the one or more snapshots of the one type of snapshot.

9. The computer program product of claim 7 , wherein the method further comprises marking the physical register as unavailable in the snapshot selected, based on choosing the physical register.

10. The computer program product of claim 7 , wherein the method further comprises deallocating the snapshot selected.

11. A computer system for facilitating processing within a computing environment, the computer system comprising:

a memory; and

a processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising:

determining that an unused physical register is unavailable for allocation;

choosing, based on determining that the unused physical register is unavailable, a physical register to be used for allocation from a selective group of physical registers, the selective group of physical registers being associated with a snapshot of one type of snapshot selected from a plurality of types of snapshots, wherein the snapshot maps physical registers to architected registers, and wherein the plurality of types of snapshots includes a restoration snapshot to be used to restore based on a register reload request and a recovery snapshot to be used to recover from an event that alters an execution path; and

allocating the physical register chosen for allocation.

12. The computer system of claim 11 , wherein registers associated with another type of snapshot are excluded from the selective group of physical registers.

13. The computer system of claim 12 , wherein the other type of snapshot comprises the recovery snapshot to be used to recover from the event that alters the execution path.

14. The computer system of claim 11 , wherein the one type of snapshot comprises the restoration snapshot to be used to restore based on the register reload request.

15. The computer system of claim 11 , wherein the choosing the physical register comprises:

selecting a snapshot from one or more snapshots of the one type of snapshot; and

choosing the physical register from one or more physical registers included in the snapshot selected.

16. A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising:

determining, by a processor, that an unused physical register is unavailable for allocation;

choosing, based on determining that the unused physical register is unavailable, a physical register to be used for allocation from a selective group of physical registers, the selective group of physical registers being associated with a snapshot of one type of snapshot selected from a plurality of types of snapshots, wherein the snapshot maps physical registers to architected registers, and wherein the plurality of types of snapshots includes a restoration snapshot to be used to restore based on a register reload request and a recovery snapshot to be used to recover from an event that alters an execution path; and

allocating the physical register chosen for allocation.

17. The computer-implemented method of claim 16 , wherein registers associated with another type of snapshot are excluded from the selective group of physical registers.

18. The computer-implemented method of claim 17 , wherein the other type of snapshot comprises the recovery snapshot to be used to recover from the event that alters the execution path.

19. The computer-implemented method of claim 16 , wherein the one type of snapshot comprises the restoration snapshot to be used to restore based on the register reload request.

20. The computer-implemented method of claim 16 , wherein the choosing the physical register comprises:

selecting a snapshot from one or more snapshots of the one type of snapshot; and

choosing the physical register from one or more physical registers included in the snapshot selected.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2017
From: GSCHWIND, MICHAEL K.; SHUM, CHUNG-LUNG K.; SLEGEL, TIMOTHY J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042044/0109 →
Continuity (1)
Related Publication 20180300143A1 · Oct 18, 2018
Cited By (1)
US 12,613,704