IP Library › Granted Patent US 10,572,265
Granted Patent B2
US 10,572,265 · App. 15/490,000 · Granted Feb 25, 2020

Selecting register restoration or register reloading

Inventors: Michael K. Gschwind (Chappaqua, NY); Chung-Lung K. Shum (Wappingers Falls, NY); Timothy J. Slegel (Staatsburg, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/3863G06F9/30043G06F9/30058G06F9/30145G06F9/384
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,572,265
App. No.
15/490,000
Granted
Feb 25, 2020
Kind
B2
Abstract

Register restoration or register reloading is selected. A restoration request to restore a plurality of architected registers is obtained. A determination is made as to whether a snapshot associated with the plurality of architected registers is valid. The snapshot provides in-core values for the plurality of architected registers. Based on the snapshot being valid, a determination is made as to whether the snapshot is to be used to recover an individual architected register of the plurality of architected registers. Based on determining the snapshot is to be used, the snapshot is used to recover the individual architected register. Based on determining the snapshot is not to be used, memory is used to recover the individual architected register.

Claims (44)

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:

obtaining a restoration request to restore a plurality of architected registers;

determining whether a snapshot associated with the plurality of architected registers is valid, the snapshot providing in-core values for the plurality of architected registers, and the snapshot mapping a plurality of physical registers to the plurality of architected registers;

determining, based on the snapshot being valid, whether the snapshot is to be used to recover an individual architected register of the plurality of architected registers;

using the snapshot to recover the individual architected register, based on determining the snapshot is to be used, wherein a physical register previously mapped to the individual architected register replaces a current physical register assigned to the individual architected register; and

using memory to recover the individual architected register, based on determining the snapshot is not to be used.

2. The computer program product of claim 1 , wherein the method further comprises:

determining whether there is another architected register to be processed; and

repeating the determining whether the snapshot is to be used for the other architected register, and one of the using the snapshot and the using the memory, based on there being another architected register to be processed.

3. The computer program product of claim 1 , wherein the method further comprises restoring the plurality of architected registers using in-memory values, based on determining the snapshot is invalid.

4. The computer program product of claim 1 , wherein the determining whether the snapshot is valid comprises checking a validity indicator associated with the snapshot to determine whether the snapshot is valid.

5. The computer program product of claim 1 , wherein the determining whether the snapshot is to be used to recover an individual architected register comprises checking a bit map to determine whether the snapshot is valid for the individual architected register.

6. The computer program product of claim 1 , wherein the determining whether the snapshot is to be used to recover an individual architected register comprises checking a time tag associated with allocating the individual architected register.

7. The computer program product of claim 6 , wherein the checking the time tag comprises comparing the time tag to a time of creation of the snapshot, wherein the time tag being older than the time of creation of the snapshot indicates the snapshot is invalid for the individual architected instruction.

8. The computer program product of claim 1 , wherein the using memory to recover comprises allocating a rename register to the individual architected register and loading the rename register from memory.

9. The computer program product of claim 1 , wherein the restoration request comprises a load multiple instruction.

10. The computer program product of claim 1 , wherein the method further comprises obtaining the snapshot from a stack of snapshots.

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:

obtaining a restoration request to restore a plurality of architected registers;

determining whether a snapshot associated with the plurality of architected registers is valid, the snapshot providing in-core values for the plurality of architected registers, and the snapshot mapping a plurality of physical registers to the plurality of architected registers;

determining, based on the snapshot being valid, whether the snapshot is to be used to recover an individual architected register of the plurality of architected registers;

using the snapshot to recover the individual architected register, based on determining the snapshot is to be used, wherein a physical register previously mapped to the individual architected register replaces a current physical register assigned to the individual architected register; and

using memory to recover the individual architected register, based on determining the snapshot is not to be used.

12. The computer system of claim 11 , wherein the method further comprises:

determining whether there is another architected register to be processed; and

repeating the determining whether the snapshot is to be used for the other architected register, and one of the using the snapshot and the using the memory, based on there being another architected register to be processed.

13. The computer system of claim 11 , wherein the method further comprises restoring the plurality of architected registers using in-memory values, based on determining the snapshot is invalid.

14. The computer system of claim 11 , wherein the determining whether the snapshot is to be used to recover an individual architected register comprises checking a bit map to determine whether the snapshot is valid for the individual architected register.

15. The computer system of claim 11 , wherein the determining whether the snapshot is to be used to recover an individual architected register comprises checking a time tag associated with allocating the individual architected register.

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

obtaining, by a processor, a restoration request to restore a plurality of architected registers;

determining whether a snapshot associated with the plurality of architected registers is valid, the snapshot providing in-core values for the plurality of architected registers, and the snapshot mapping a plurality of physical registers to the plurality of architected registers;

determining, based on the snapshot being valid, whether the snapshot is to be used to recover an individual architected register of the plurality of architected registers;

using the snapshot to recover the individual architected register, based on determining the snapshot is to be used, wherein a physical register previously mapped to the individual architected register replaces a current physical register assigned to the individual architected register; and

using memory to recover the individual architected register, based on determining the snapshot is not to be used.

17. The computer-implemented method of claim 16 , further comprising:

determining whether there is another architected register to be processed; and

repeating the determining whether the snapshot is to be used for the other architected register, and one of the using the snapshot and the using the memory, based on there being another architected register to be processed.

18. The computer-implemented method of claim 16 , further comprising restoring the plurality of architected registers using in-memory values, based on determining the snapshot is invalid.

19. The computer-implemented method of claim 16 , wherein the determining whether the snapshot is to be used to recover an individual architected register comprises checking a bit map to determine whether the snapshot is valid for the individual architected register.

20. The computer-implemented method of claim 16 , wherein the determining whether the snapshot is to be used to recover an individual architected register comprises checking a time tag associated with allocating the individual architected register.

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 042043/0885 →
Continuity (1)
Related Publication 20180300156A1 · Oct 18, 2018