IP Library › Granted Patent US 12,613,704
Granted Patent B2
US 12,613,704 · App. 16/721,994 · Granted Apr 28, 2026

Reusing snapshots shared between restoration and recovery

Inventors: Michael K. Gschwind (Chappaqua, NY); Valentina Salapura (Chappaqua, NY); Chung-Lung K. Shum (Wappingers Falls, NY); Timothy J. Slegel (Staatsburg, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/3863G06F9/30043G06F9/30058G06F9/323G06F9/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 12,613,704
App. No.
16/721,994
Granted
Apr 28, 2026
Kind
B2
Abstract

Sharing snapshots between restoration and recovery. A snapshot to be used for recovery and restoration is obtained. The snapshot includes restoration state for a plurality of architected registers. The plurality of architected registers includes one or more architected registers associated with an instruction to alter an execution path and one or more architected registers associated with a save request. At least one architected register of the plurality of architected registers is restored, based on a recovery request to recover at least one architected register associated with the instruction to alter the execution path or a restoration request to restore at least one architected register associated with the save request.

Claims (44)

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

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

receiving a first request to take a snapshot;

obtaining, based on receiving the first request to take the snapshot, a chosen snapshot comprising a mapping of architected register identifications to physical register identifications at a particular point in time, the chosen snapshot to be used for and shared with multiple types of processing, the multiple types of processing including recovery and restoration, the recovery being recovery from an instruction to alter an execution path, and the restoration being based on a bulk save request based on a function call, the chosen snapshot including restoration state for a plurality of architected registers, the plurality of architected registers including one or more first architected registers associated with the instruction to alter the execution path and usable in recovery and one or more second architected registers associated with the bulk save request and usable in restoration, wherein the chosen snapshot is a shared snapshot which includes a mapping of one or more architected register identifications to physical register identifications associated with the instruction to alter the execution path and usable in recovery, and a mapping of other architected register identifications to physical register identifications associated with the bulk save request and usable in restoration;

determining whether the one or more first architected registers and the one or more second architected registers of the plurality of architected registers have been modified since the chosen snapshot was taken by tracking, via a bitmap, registers that have not been written to since the chosen snapshot was taken;

restoring, using the chosen snapshot, at least one first architected register of the plurality of architected registers, based on a selected request, the selected request being a recovery request to recover at least one first architected register mapping associated with the instruction to alter the execution path, wherein the restoring for a given first architected register, of the at least one first architected register, replaces a physical register identification currently mapped to the given first architected register with a physical register identification previously mapped to the given first architected register; and

based on receiving a second request to take another snapshot comprising a mapping of architected register identifications to physical register identifications at another point in time, and based on determining, via the bitmap, that the one or more first architected registers and the one or more second architected registers have not been modified since the chosen snapshot was taken, reusing the chosen snapshot in place of taking the another snapshot to satisfy the second request to take the another snapshot, the reusing including setting a snapshot identifier (this_snapshot_ID) for identifying the another snapshot to an existing snapshot identifier (prev_snapshot_ID) identifying the chosen snapshot, wherein the reusing the chosen snapshot comprises maintaining a reference to the chosen snapshot as a last restoration snapshot taken that is shared between the recovery and the restoration.

2 . The computer program product of claim 1 , wherein the instruction to alter the execution path comprises a branch conditional instruction.

3 . The computer program product of claim 1 , wherein the instruction to alter the execution path comprises a jump instruction.

4 . The computer program product of claim 1 , wherein the bulk save request comprises a bulk store request.

5 . The computer program product of claim 1 , wherein the method further comprises creating the another snapshot based on determining that at least one selected architected register has been modified.

6 . The computer program product of claim 5 , wherein the another snapshot includes the at least one selected architected register that has been modified and fails to include architected registers of a set of architected registers that have not been modified.

7 . 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:

receiving a first request to take a snapshot;

obtaining, based on receiving the first request to take the snapshot, a chosen snapshot comprising a mapping of architected register identifications to physical register identifications at a particular point in time, the chosen snapshot to be used for and shared with multiple types of processing, the multiple types of processing including recovery and restoration, the recovery being recovery from an instruction to alter an execution path, and the restoration being based on a bulk save request based on a function call, the chosen snapshot including restoration state for a plurality of architected registers, the plurality of architected registers including one or more first architected registers associated with the instruction to alter the execution path and usable in recovery and one or more second architected registers associated with the bulk save request and usable in restoration, wherein the chosen snapshot is a shared snapshot which includes a mapping of one or more architected register identifications to physical register identifications associated with the instruction to alter the execution path and usable in recovery, and a mapping of other architected register identifications to physical register identifications associated with the bulk save request and usable in restoration;

determining whether the one or more first architected registers and the one or more second architected registers of the plurality of architected registers have been modified since the chosen snapshot was taken by tracking, via a bitmap, registers that have not been written to since the chosen snapshot was taken;

restoring, using the chosen snapshot, at least one first architected register of the plurality of architected registers, based on a selected request, the selected request being a recovery request to recover at least one first architected register mapping associated with the instruction to alter the execution path, wherein the restoring for a given first architected register, of the at least one first architected register, replaces a physical register identification currently mapped to the given first architected register with a physical register identification previously mapped to the given first architected register; and

based on receiving a second request to take another snapshot comprising a mapping of architected register identifications to physical register identifications at another point in time, and based on determining, via the bitmap, that the one or more first architected registers and the one or more second architected registers have not been modified since the chosen snapshot was taken, reusing the chosen snapshot in place of taking the another snapshot to satisfy the second request to take the another snapshot, the reusing including setting a snapshot identifier (this_snapshot_ID) for identifying the another snapshot to an existing snapshot identifier (prev_snapshot_ID) identifying the chosen snapshot, wherein the reusing the chosen snapshot comprises maintaining a reference to the chosen snapshot as a last restoration snapshot taken that is shared between the recovery and the restoration.

8 . The computer system of claim 7 , wherein the instruction to alter the execution path comprises a branch conditional instruction.

9 . The computer system of claim 7 , wherein the instruction to alter the execution path comprises a jump instruction.

10 . The computer system of claim 7 , wherein the bulk save request comprises a bulk store request.

11 . The computer system of claim 7 , wherein the method further comprises creating the another snapshot based on determining that at least one selected architected register has been modified.

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

receiving a first request to take a snapshot;

obtaining, based on receiving the first request to take the snapshot, a chosen snapshot comprising a mapping of architected register identifications to physical register identifications at a particular point in time, the chosen snapshot to be used for and shared with multiple types of processing, the multiple types of processing including recovery and restoration, the recovery being recovery from an instruction to alter an execution path, and the restoration being based on a bulk save request based on a function call, the chosen snapshot including restoration state for a plurality of architected registers, the plurality of architected registers including one or more first architected registers associated with the instruction to alter the execution path and usable in recovery and one or more second architected registers associated with the bulk save request and usable in restoration, wherein the chosen snapshot is a shared snapshot which includes a mapping of one or more architected register identifications to physical register identifications associated with the instruction to alter the execution path and usable in recovery, and a mapping of other architected register identifications to physical register identifications associated with the bulk save request and usable in restoration;

determining whether the one or more first architected registers and the one or more second architected registers of the plurality of architected registers have been modified since the chosen snapshot was taken by tracking, via a bitmap, registers that have not been written to since the chosen snapshot was taken;

restoring, using the chosen snapshot, at least one first architected register of the plurality of architected registers, based on a selected request, the selected request being a recovery request to recover at least one first architected register mapping associated with the instruction to alter the execution path, wherein the restoring for a given first architected register, of the at least one first architected register, replaces a physical register identification currently mapped to the given first architected register with a physical register identification previously mapped to the given first architected register;

receiving a second request to take another snapshot comprising a mapping of architected register identifications to physical register identifications at another point in time;

detecting, via the bitmap, that the one or more first architected registers and the one or more second architected registers have not been modified since the chosen snapshot was taken; and

based on receiving the second request, and based on the detecting, reusing the chosen snapshot in place of taking the another snapshot to satisfy the second request to take the another snapshot, the reusing including setting a snapshot identifier (this_snapshot_ID) for identifying the another snapshot to an existing snapshot identifier (prev_snapshot_ID) identifying the chosen snapshot, wherein the reusing the chosen snapshot comprises maintaining a reference to the chosen snapshot as a last restoration snapshot taken that is shared between the recovery and the restoration.

13 . The computer-implemented method of claim 12 , wherein the instruction to alter the execution path comprises a branch conditional instruction.

14 . The computer-implemented method of claim 12 , wherein the instruction to alter the execution path comprises a jump instruction.

15 . The computer-implemented method of claim 12 , wherein the bulk save request comprises a bulk store request.

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

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

receiving a first request to take a snapshot;

obtaining, based on receiving the first request to take the snapshot, a chosen snapshot comprising a mapping of architected register identifications to physical register identifications at a particular point in time, the chosen snapshot to be used for and shared with multiple types of processing, the multiple types of processing including recovery and restoration, the recovery being recovery from an instruction to alter an execution path, and the restoration being based on a bulk save request based on a function call, the chosen snapshot including restoration state for a plurality of architected registers, the plurality of architected registers including one or more first architected registers associated with the instruction to alter the execution path and usable in recovery and one or more second architected registers associated with the bulk save request and usable in restoration, wherein the chosen snapshot is a shared snapshot which includes a mapping of one or more architected register identifications to physical register identifications associated with the instruction to alter the execution path and usable in recovery, and a mapping of other architected register identifications to physical register identifications associated with the bulk save request and usable in restoration;

determining whether the one or more first architected registers and the one or more second architected registers of the plurality of architected registers have been modified since the chosen snapshot was taken by tracking, via a bitmap, registers that have not been written to since the chosen snapshot was taken;

restoring, using the chosen snapshot, at least one second architected register, of the plurality of architected registers, based on a selected request, the selected request being a restoration request to restore the at least one second architected register associated with the bulk save request, wherein the restoring for a given second architected register of the at least one second architected register, replaces a physical register identification currently mapped to the given second architected register with a physical register identification previously mapped to the given second architected register; and

based on receiving a second request to take another snapshot comprising a mapping of architected register identifications to physical register identifications at another point in time, and based on determining, via the bitmap, that the one or more first architected registers and the one or more second architected registers have not been modified since the chosen snapshot was taken, reusing the chosen snapshot in place of taking the another snapshot to satisfy the second request to take the another snapshot, the reusing including setting a snapshot identifier (this_snapshot_ID) for identifying the another snapshot to an existing snapshot identifier (prev_snapshot_ID) identifying the chosen snapshot, wherein the reusing the chosen snapshot comprises maintaining a reference to the chosen snapshot as a last restoration snapshot taken that is shared between the recovery and the restoration.

17 . The computer program product of claim 16 , wherein the method further comprises creating the another snapshot based on determining that at least one selected architected register has been modified.

18 . The computer program product of claim 17 , wherein the another snapshot includes the at least one second architected register that has been modified and fails to include other architected registers of the plurality of architected registers that have not been modified.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2019
From: GSCHWIND, MICHAEL K.; SALAPURA, VALENTINA; SHUM, CHUNG-LUNG K.; SLEGEL, TIMOTHY J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 051340/0097 →
Continuity (2)
Continuation 15489869 · Apr 18, 2017
Related Publication 20200125367A1 · Apr 23, 2020
References Cited (275)
US 3781810A · Downing · 1973 [cited by applicant]
US 5414864A · Koizumi · 1995 [cited by applicant]
US 5535397A · Durante · 1996 [cited by applicant]
US 5649230A · Lentz · 1997 [cited by applicant]
US 5673408A · Shebanow · 1997 [cited by applicant]
US 5694564A · Alsup · 1997 [cited by examiner]
US 5742822A · Motomura · 1998 [cited by applicant]
US 5794024A · Golla et al. · 1998 [cited by applicant]
US 5809522A · Novak · 1998 [cited by applicant]
US 5812439A · Hansen · 1998 [cited by applicant]
US 5826070A · Olson et al. · 1998 [cited by applicant]
US 5828873A · Lynch · 1998 [cited by applicant]
US 5881305A · Walker · 1999 [cited by applicant]
US 5918005A · Moreno et al. · 1999 [cited by applicant]
US 5974512A · Chiba · 1999 [cited by applicant]
US 5987495A · Ault · 1999 [cited by applicant]
US 6047122A · Spiller · 2000 [cited by applicant]
US 6088779A · Bharadhwaj · 2000 [cited by applicant]
US 6134653A · Roy · 2000 [cited by applicant]
US 6151669A · Huck et al. · 2000 [cited by applicant]
US 6298403B1 · Suri · 2001 [cited by applicant]
US 6338137B1 · Shiell · 2002 [cited by applicant]
US 6421758B1 · Buti · 2002 [cited by applicant]
US 6480931B1 · Buti et al. · 2002 [cited by applicant]
US 6513109B1 · Gschwind et al. · 2003 [cited by applicant]
US 6560774B1 · Gordon et al. · 2003 [cited by applicant]
US 6571329B1 · Ukai · 2003 [cited by applicant]
US 6578059B1 · Huck et al. · 2003 [cited by applicant]
US 6779103B1 · Alexander et al. · 2004 [cited by applicant]
US 6810476B2 · Mcgrath et al. · 2004 [cited by applicant]
US 7069411B1 · McMinn · 2006 [cited by examiner]
US 7085914B1 · Gschwind · 2006 [cited by applicant]
US 7373489B1 · Brooks et al. · 2008 [cited by applicant]
US 7426618B2 · Vu · 2008 [cited by applicant]
US 7493621B2 · Bradford · 2009 [cited by applicant]
US 7529912B2 · Henry et al. · 2009 [cited by applicant]
US 7543284B2 · Bolton et al. · 2009 [cited by applicant]
US 7546328B2 · Schulte et al. · 2009 [cited by applicant]
US 7562200B1 · Chatterjee · 2009 [cited by applicant]
US 7725519B2 · Dockser · 2010 [cited by applicant]
US 7840788B1 · Rozas et al. · 2010 [cited by applicant]
US 7895418B1 · Green · 2011 [cited by applicant]
US 7908460B2 · Liao et al. · 2011 [cited by applicant]
US 7962731B2 · Rychlik · 2011 [cited by applicant]
US 7971018B2 · Schwemmlein · 2011 [cited by applicant]
US 7996662B2 · Lien et al. · 2011 [cited by applicant]
US 8001421B2 · Wang et al. · 2011 [cited by applicant]
US 8010543B1 · Armangau · 2011 [cited by applicant]
US 8020169B2 · Yamasaki · 2011 [cited by applicant]
US 8095777B2 · Blaner et al. · 2012 [cited by applicant]
US 8095915B2 · Winberg et al. · 2012 [cited by applicant]
US 8099726B2 · Harris · 2012 [cited by applicant]
US 8229989B2 · Dhong et al. · 2012 [cited by applicant]
US 8245018B2 · Nguyen · 2012 [cited by applicant]
US 8412761B2 · Yoshida · 2013 [cited by applicant]
US 8438372B2 · Dieffenderfer et al. · 2013 [cited by applicant]
US 8484438B2 · Cypher · 2013 [cited by applicant]
US 8516465B2 · Damron · 2013 [cited by applicant]
US 8539451B2 · Ivancic et al. · 2013 [cited by applicant]
US 8544022B2 · Arndt et al. · 2013 [cited by applicant]
US 8560816B2 · Moir et al. · 2013 [cited by applicant]
US 8661204B2 · Dwarkadas et al. · 2014 [cited by applicant]
US 8677105B2 · Abdallah · 2014 [cited by applicant]
US 8782625B2 · Godefroid et al. · 2014 [cited by applicant]
US 8788792B2 · Yates et al. · 2014 [cited by applicant]
US 8799344B2 · Steele, Jr. · 2014 [cited by applicant]
US 8949580B2 · Li et al. · 2015 [cited by applicant]
US 8966453B1 · Zamfir · 2015 [cited by applicant]
US 8972992B2 · Fletcher et al. · 2015 [cited by applicant]
US 8972994B2 · Srinivas · 2015 [cited by applicant]
US 9009208B2 · Nystad · 2015 [cited by applicant]
US 9009692B2 · Kalogeropulos et al. · 2015 [cited by applicant]
US 9015450B2 · Sun · 2015 [cited by applicant]
US 9047314B1 · Luetkemeyer et al. · 2015 [cited by applicant]
US 9063747B2 · Tran · 2015 [cited by applicant]
US 9081834B2 · Bhave · 2015 [cited by applicant]
US 9110691B2 · Chung et al. · 2015 [cited by applicant]
US 9189200B1 · Langhammer · 2015 [cited by applicant]
US 9201651B2 · Craske · 2015 [cited by applicant]
US 9262207B2 · Cain, III et al. · 2016 [cited by applicant]
US 9298626B2 · Busaba et al. · 2016 [cited by applicant]
US 9361115B2 · Greiner et al. · 2016 [cited by applicant]
US 9436470B2 · Jackson · 2016 [cited by applicant]
US 9459875B2 · Bradbury et al. · 2016 [cited by applicant]
US 9529574B2 · Gonion · 2016 [cited by applicant]
US 9594576B2 · Gainey et al. · 2017 [cited by applicant]
US 9710280B2 · Chung et al. · 2017 [cited by applicant]
US 9760376B1 · Bequet et al. · 2017 [cited by applicant]
US 9766864B2 · Rempell et al. · 2017 [cited by applicant]
US 9851946B2 · Cowlishaw et al. · 2017 [cited by applicant]
US 9898297B2 · Vorbach et al. · 2018 [cited by applicant]
US 9921848B2 · Bradbury et al. · 2018 [cited by applicant]
US 9977729B1 · Ivancic et al. · 2018 [cited by applicant]
US 10083094B1 · Thomas · 2018 [cited by examiner]
US 10198267B2 · Airaud · 2019 [cited by applicant]
US 10198321B1 · Gordon · 2019 [cited by applicant]
US 10552164B2 · Gschwind · 2020 [cited by examiner]
US 10564977B2 · Gschwind · 2020 [cited by examiner]
US 10649785B2 · Gschwind · 2020 [cited by applicant]
US 10740067B2 · Gschwind et al. · 2020 [cited by applicant]
US 10782979B2 · Gschwind · 2020 [cited by applicant]
US 11010192B2 · Gschwind et al. · 2021 [cited by applicant]
US 20020087500A1 · Berkowitz · 2002 [cited by applicant]
US 20020087836A1 · Jourdan · 2002 [cited by applicant]
US 20020116662A1 · Hofstee et al. · 2002 [cited by applicant]
US 20030005013A1 · Steele · 2003 [cited by applicant]
US 20030005265A1 · Barowski · 2003 [cited by applicant]
US 20030028759A1 · Prabhu et al. · 2003 [cited by applicant]
US 20030177342A1 · Morita · 2003 [cited by applicant]
US 20040093319A1 · Ogasawara et al. · 2004 [cited by applicant]
US 20040133766A1 · Abraham · 2004 [cited by applicant]
US 20040158697A1 · Col · 2004 [cited by applicant]
US 20040230778A1 · Chou · 2004 [cited by applicant]
US 20050033946A1 · Abadallah et al. · 2005 [cited by applicant]
US 20050257202A1 · Kaestner et al. · 2005 [cited by applicant]
US 20050262389A1 · Leijten · 2005 [cited by applicant]
US 20060026390A1 · Cabillic · 2006 [cited by applicant]
US 20060026407A1 · Chauvel · 2006 [cited by applicant]
US 20060184771A1 · Floyd et al. · 2006 [cited by applicant]
US 20060268967A1 · Drezet · 2006 [cited by applicant]
US 20070022428A1 · Yamasaki · 2007 [cited by applicant]
US 20070043934A1 · Sodani · 2007 [cited by applicant]
US 20070055723A1 · Cornea-Hasegan · 2007 [cited by applicant]
US 20070067759A1 · Uchida · 2007 [cited by applicant]
US 20070074006A1 · Martinez et al. · 2007 [cited by applicant]
US 20070113060A1 · Lien et al. · 2007 [cited by applicant]
US 20070130448A1 · Jourdan · 2007 [cited by applicant]
US 20070156985A1 · Tsai · 2007 [cited by applicant]
US 20070245099A1 · Gray et al. · 2007 [cited by applicant]
US 20080016325A1 · Laudon et al. · 2008 [cited by applicant]
US 20080040586A1 · Colavin et al. · 2008 [cited by applicant]
US 20080077782A1 · Lataille et al. · 2008 [cited by applicant]
US 20080098362A1 · Moore · 2008 [cited by applicant]
US 20080126744A1 · Moyer · 2008 [cited by applicant]
US 20080148022A1 · Piry et al. · 2008 [cited by applicant]
US 20080244241A1 · Barraclough et al. · 2008 [cited by applicant]
US 20080282071A1 · Takebe · 2008 [cited by applicant]
US 20090077329A1 · Wood · 2009 [cited by applicant]
US 20090172355A1 · Anderson et al. · 2009 [cited by applicant]
US 20090292977A1 · Bradley · 2009 [cited by applicant]
US 20100031084A1 · Tremblay et al. · 2010 [cited by applicant]
US 20100153690A1 · Vick et al. · 2010 [cited by applicant]
US 20100217945A1 · Ge et al. · 2010 [cited by applicant]
US 20100262812A1 · Lopez · 2010 [cited by applicant]
US 20110004644A1 · Henry et al. · 2011 [cited by applicant]
US 20110093686A1 · Penton · 2011 [cited by applicant]
US 20110238962A1 · Cain, III et al. · 2011 [cited by applicant]
US 20120005461A1 · Moir et al. · 2012 [cited by applicant]
US 20120036340A1 · Chaussade · 2012 [cited by examiner]
US 20120084477A1 · Arndt · 2012 [cited by examiner]
US 20120089807A1 · Rupley · 2012 [cited by applicant]
US 20120278592A1 · Tran · 2012 [cited by applicant]
US 20120278596A1 · Tran · 2012 [cited by applicant]
US 20120296877A1 · Guthrie · 2012 [cited by applicant]
US 20130086365A1 · Gschwind et al. · 2013 [cited by applicant]
US 20130086598A1 · Gschwind et al. · 2013 [cited by applicant]
US 20130179665A1 · Jackson · 2013 [cited by applicant]
US 20130226878A1 · Sankaranarayanan · 2013 [cited by applicant]
US 20130232489A1 · Mitsugi et al. · 2013 [cited by applicant]
US 20130297912A1 · Tran · 2013 [cited by examiner]
US 20130326199A1 · Magklis et al. · 2013 [cited by applicant]
US 20130339327A1 · Belmar · 2013 [cited by applicant]
US 20140032884A1 · Krishna et al. · 2014 [cited by applicant]
US 20140040595A1 · Tran · 2014 [cited by applicant]
US 20140095833A1 · Gschwind et al. · 2014 [cited by applicant]
US 20140095848A1 · Gschwind et al. · 2014 [cited by applicant]
US 20140114929A1 · Henrichs · 2014 [cited by applicant]
US 20140156933A1 · Shaikh · 2014 [cited by applicant]
US 20140230077A1 · Muff · 2014 [cited by applicant]
US 20140244978A1 · King · 2014 [cited by applicant]
US 20140281419A1 · Lupon et al. · 2014 [cited by applicant]
US 20150012727A1 · Akizuki · 2015 [cited by applicant]
US 20150019843A1 · Krishna et al. · 2015 [cited by applicant]
US 20150019847A1 · Catherwood · 2015 [cited by applicant]
US 20150039860A1 · Sundar et al. · 2015 [cited by applicant]
US 20150046662A1 · Heinrich et al. · 2015 [cited by applicant]
US 20150052403A1 · Garrett · 2015 [cited by applicant]
US 20150088946A1 · Anderson et al. · 2015 [cited by applicant]
US 20150121044A1 · Lau · 2015 [cited by applicant]
US 20150154106A1 · Pusdesris et al. · 2015 [cited by applicant]
US 20150227355A1 · Tripoli · 2015 [cited by applicant]
US 20150277880A1 · Gschwind et al. · 2015 [cited by applicant]
US 20150286482A1 · Espasa et al. · 2015 [cited by applicant]
US 20150339123A1 · Jackson · 2015 [cited by applicant]
US 20150339480A1 · Lutas · 2015 [cited by applicant]
US 20150347108A1 · Munshi et al. · 2015 [cited by applicant]
US 20160041913A1 · Avudaiyappan et al. · 2016 [cited by applicant]
US 20160062954A1 · Ruff et al. · 2016 [cited by applicant]
US 20160070538A1 · Cowlishaw et al. · 2016 [cited by applicant]
US 20160077926A1 · Mutalik · 2016 [cited by applicant]
US 20160092673A1 · LeMay · 2016 [cited by applicant]
US 20160104011A1 · Henry et al. · 2016 [cited by applicant]
US 20160139881A1 · Draese et al. · 2016 [cited by applicant]
US 20160139918A1 · Zohar et al. · 2016 [cited by applicant]
US 20160232071A1 · Duale et al. · 2016 [cited by applicant]
US 20160350115A1 · Tonnerre · 2016 [cited by applicant]
US 20160371496A1 · Sell · 2016 [cited by applicant]
US 20170090939A1 · Gschwind · 2017 [cited by applicant]
US 20170090940A1 · Gschwind · 2017 [cited by applicant]
US 20170249144A1 · Jaget · 2017 [cited by applicant]
US 20170300505A1 · Belmanu Sadananda · 2017 [cited by applicant]
US 20180088941A1 · Pardo et al. · 2018 [cited by applicant]
US 20180173527A1 · Moudgill et al. · 2018 [cited by applicant]
US 20180260564A1 · Porteboeuf · 2018 [cited by applicant]
US 20180300142A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300143A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300149A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300150A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300151A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300152A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300153A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300154A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300155A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300156A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300157A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300158A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300159A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180300368A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373489A1 · Gan et al. · 2018 [cited by applicant]
US 20180373497A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373499A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373500A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373528A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373529A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373530A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373531A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373532A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373533A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373534A1 · Gschwind et al. · 2018 [cited by applicant]
US 20180373537A1 · Gschwind et al. · 2018 [cited by applicant]
US 20190324758A1 · Gschwind · 2019 [cited by applicant]
CN 1678999A · 2005 [cited by applicant]
CN 102662851A · 2012 [cited by applicant]
CN 104021058A · 2014 [cited by applicant]
CN 106020778A · 2016 [cited by applicant]
GB 2516999A · 2015 [cited by applicant]
JP H10289113A · 1998 [cited by applicant]
JP H11167494A · 1999 [cited by applicant]
JP 2005537580A · 2005 [cited by applicant]
WO WO2007130386A2 · 2007 [cited by applicant]
WO WO2013062948A1 · 2013 [cited by applicant]
WO WO2013100992A1 · 2013 [cited by applicant]
Gilbert, “Dependency and Exception Handling in an Asynchronous Microprocessor”, 1997, pp. 1-205. [cited by examiner]
Wikipedia, “Bit array”, Apr. 16, 2017, 7 pages. [cited by examiner]
Anonymous, “A Graph-Based Modeling Method for Register Coupling in Chip Functional Verification,” IP.com No. IPCOM000235071D, Feb. 26, 2014, pp. 1-17 (+ cover). [cited by applicant]
Anonymous, “Hot-Patching a VM/Guest Snapshot,” IP.com No. IPCOM000244666D, Jan. 2016, pp. 1-2 (+ cover). [cited by applicant]
Anonymous, “Power-Saving Mode Control with Dynamically-Controlled Access,” IP.com No. IPCOM000239255D, Oct. 23, 2014, pp. 1-4 (+ cover). [cited by applicant]
Anonymous, SMT Address Trickling, IP.com No. IPCOM000012658D, May 19, 2003, pp. 1-6 (+ cover). [cited by applicant]
Anonymous, “System and Method for Fact and Consistency Checking of Digital Communication Using Big Data,” IP.Com No. IPCOM000233765D, Dec. 19, 2013, pp. 1-3 (+ cover). [cited by applicant]
Casper et al., “Hardware Acceleration of Transactional Memory on Commodity Systems,” ASPLOS XVI, Mar. 2011, pp. 27-38. [cited by applicant]
Condie, Tyson et al., “MapReduce Online,” Technical Report No. UCB/EECS-2009-136 http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-136.html, Oct. 2009, pp. 1-14. [cited by applicant]
IBM, “CPU Self-Optimization Thread,” IP.com No. IPCOM000150554D, Apr. 18, 2007, pp. 1-2 (+ cover). [cited by applicant]
Memik, Gokhan et al., “Engineering Over-Clocking: Reliability-Performance Trade-Offs for High-Performance Register Files,” Proceedings of the 2005 International Conference on Dependable Systems and Networks, Jun. 2015, … [cited by applicant]
Sharafeddine, Mageda et al., “Virtual Register Renaming,” Proceedings of the 26th international conference on Architecture of Computing Systems, Feb. 2013, pp. 86-97. [cited by applicant]
Magnusson, “Understanding Stacks and Registers in the Sparc Architectures(s)”, Mar. 13, 2015, pp. 1-9. [cited by applicant]
Ferreira, Ronaldo Rodrigues, “The Transactional HW/SW Stack for Fault Tolerant Embedded Computing,” Jan. 2015, pp. 35-44, 53-55, 61-68, 76-80, 103-108 (+ cover sheets). [cited by applicant]
IBM, “Power ISA—V2.07B,” Apr. 2015, pp. 47-63, 131-135, 139-141, 229-234, 645, 821-824, 1285-1289, 1351, 1355 (+ cover sheets). [cited by applicant]
IBM, “z/Architecture—Principles of Operation,” IBM Publication No. SA22-7832-10, Eleventh Edition, Mar. 2015, pp. 7-221 thru 7-242, 7-327 thru 7-337, 9-31, 10-39 thru 10-59, 10-131 thru 10-159, 21-8, A-32 (+ cover sheet… [cited by applicant]
Pasricha et al., “Improving Branch Prediction Accuracy in Embedded Processors in the Presence of Context Switches,” in Proceedings of the 21st International Conference on Computer Design (ICCD' 03), IEEE, 2003, 6 pages. [cited by applicant]
List of IBM Patents or Patent Applications Treated as Related, Jan. 13, 2020, 2 pages. [cited by applicant]
Benoit, Anne et al., “Efficient Checkpoint/Verification Patterns,” The International Journal of High Performance Computing Applications, vol. 3(1), Jan. 2017, pp. 52-65. [cited by applicant]
Japanese Patent Application No. JP-2019-556276, “Notice of Reasons for Refusal”, English Translation, dated Sep. 2, 2021 (3 pages). [cited by applicant]
Anderson, A. et al., “Vectorization of Multibyte Floating Point Data Formats,” PACT '16, Sep. 2016, pp. 363-372. [cited by applicant]
Anonymous, “Method for Generating Floating Point Status Word Control Bits,” IP.com No. IPCOM000006388D, Dec. 2001, pp. 03. [cited by applicant]
Burgess, Neil, “Prenormalization Rounding in IEEE Floating-Point Operations Using A Flagged Prefix Adder,” IEEE Transactions on Very Large Scale Integration(VLSI) Systems, vol. 13, No. 2, Feb. 2005, pp. 266-277. [cited by applicant]
Ehliar Andreas, “Area Efficient Floating-Point Adder and Multiplier with IEEE-754 Compatible Semantics,” 2014 International Conference on Field Programmable Technology, Dec. 2014, pp. 131-138. [cited by applicant]
Ganguly et al., “A Unified Flagged Prefix Constant Addition-Subtraction Scheme for Design of Area and Power Efficient Binary Floating-Point and Constant Integer Arithmetic Circuits,” 2014 IEEE Asia Pacific Conference on… [cited by applicant]
Intel, “Intel 64 and IA-32 Architectures Software Developer's Manual—vol. 1: Basic Architecture,” 253665-060US, Sep. 2016, 36 pages. [cited by applicant]
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or Declaration,” Patent Cooperation Treaty, Oct. 25, 2… [cited by applicant]
Lee et al., “OpenARC: Extensible OpenACC Compiler Framework for Directive-Based Accelerator Programming Study,” 2014 First Workshop on Accelerator Programming Using Directives, Jan. 2014, pp. 1-11. [cited by applicant]
Mel et al., “The NIST Definition of Cloud Computing,” National Institute of Standards and Technology, Information Technology Laboratory, Special Publication 800-145, Sep. 2011, pp. 1-7. [cited by applicant]
Nothaft, F. et al., “Pragma-Based Floating-to-Fixed Point Conversion for the Emulation of Analog Behavioral Models,” May 2014, pp. 633-640. [cited by applicant]
Wang et al., “Decimal Floating-Point Adder and Multifunction Unit with Injection-Based Rounding,” 18th IEEE Symposium on Computer Arithmetic, Jun. 2007, pp. 1-10. [cited by applicant]
Yoo et al., “Virtualizing ARM VFP (Vector Floating-Point) with Xen-ARM,” Journal of Systems Architecture, Oct. 2013, pp. 1266-1276. [cited by applicant]
Yu et al., “The Coarse-Grained/Fine-Grained Logic Interface in FPGAS with Embedded Floating-Point Arithmetic Units,” 2008 4th Southern Conference on Programmable Logic, Mar. 2008, 00. 63-68. [cited by applicant]