# US 2014/0195719 A1 · Instantaneous save/restore of virtual machines with persistent memory

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0195719 A1
- Document ID: US20140195719A1
- Status: Published application
- Kind: A1
- Application number: 13/736,456
- Filed: 2013-01-08
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Bulent Abali; Mohammad Banikazemi; John A. Bivens; Michael R. Hines; Dan E. Poff
- Web page: https://patentgrep.com/patent/US20140195719A1

## CPC

- G06F 12/16: Protection against loss of memory contents {(contains no material, see G06F11/00)}
- G06F 11/1446: Point-in-time backing up or restoration of persistent data
- G06F 12/0238: {Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory}
- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer implemented method creates a snapshot of a logical volume of a computer. The computer stores a system state of the computer in persistent memory. The computer flushes a cash of the computer. The computer identifies a preceding snapshot. Responsive to identifying the preceding snapshot, the computer hardens changes occurring after the preceding snapshot. The computer then switches from a first indirection table to a second indirection table.

## Claims

### Claim at position 1

1-8. (canceled)

### Claim 9

A computer system for creating a snapshot of a persistent physical memory of the computer system, the computer system comprising:
one or more processors, one or more persistent memories and a memory controller;
program instructions, for execution by the memory controller, to store a system state of the computer in persistent memory;
program instructions, for execution by the memory controller, to flush a cash of the computer;
program instructions, for execution by the memory controller, to identify a preceding snapshot;
program instructions, for execution by the memory controller, responsive to identifying the preceding snapshot, to harden changes occurring after the preceding snapshot; and
program instructions, for execution by the memory controller, to switch from a first indirection table to a second indirection table.

### Claim 10 (depends on 9)

The computer system of claim 9, wherein the persistent memory is a non-volatile memory implementing a wear-leveling process.

### Claim 11 (depends on 10)

The computer system of claim 10, wherein the non-volatile memory is selected from the group consisting of NAND type flash memories, NOR type flash memories, Phase Change memories, Spin Torque Transfer RAM memories, and memristor memories.

### Claim 12 (depends on 9)

The computer system of claim 9, wherein the second indirection table is implemented using a copy on write methodology from the first indirection table.

### Claim 13 (depends on 12)

The computer system of claim 12, further comprising:
program instructions, for execution by the memory controller, to switch from the first indirection table to the second indirection table, wherein real memory locations referenced by the first indirection table are not overwritten while utilizing the second indirection table.

### Claim 14 (depends on 13)

The computer system of claim 13, further comprising:
program instructions, for execution by the memory controller, to restore a previous state of the non-volatile memory, wherein the step of restoring to the previous state comprises switching from the second indirection table to the first indirection table.

### Claim 15 (depends on 13)

The computer system of claim 13, further comprising:
program instructions, for execution by the memory controller, to restore a previous state of the non-volatile memory, wherein the step of restoring to the previous state consists of switching from the second indirection table to the first indirection table.

### Claim 16 (depends on 9)

The computer system of claim 9, further comprising:
program instructions, for execution by the memory controller, to switch switching from the first indirection table to the second indirection table, wherein the switching is performed by the memory controller, wherein the memory controller is a hardware memory controller.

### Claim 17

A computer readable storage medium having computer usable program instructions encoded thereon for creating a snapshot of a persistent physical memory of a computer system, comprising:
program instructions to store a system state of the computer in persistent memory;
program instructions to flush a cash of the computer;
program instructions to identify a preceding snapshot;
program instructions, responsive to identifying the preceding snapshot, to harden changes occurring after the preceding snapshot; and
program instructions, to switch from a first indirection table to a second indirection table.

### Claim 18 (depends on 17)

The computer readable storage medium of claim 17, wherein the persistent memory is a non-volatile memory implementing a wear-leveling process.

### Claim 19 (depends on 18)

The computer readable storage medium of claim 18, wherein the non-volatile memory is selected from the group consisting of NAND type flash memories, NOR type flash memories, Phase Change memories, Spin Torque Transfer RAM memories, and memristor memories.

### Claim 20 (depends on 17)

The computer readable storage medium of claim 17, wherein the second indirection table is implemented using a copy on write methodology from the first indirection table.

### Claim 21 (depends on 20)

The computer readable storage medium of claim 20, further comprising:
program instructions to switch from the first indirection table to the second indirection table, wherein real memory locations referenced by the first indirection table are not overwritten while utilizing the second indirection table.

### Claim 22 (depends on 21)

The computer readable storage medium of claim 21, further comprising:
program instructions to restore a previous state of the non-volatile memory, wherein the step of restoring to the previous state comprises switching from the second indirection table to the first indirection table.

### Claim 23 (depends on 21)

The computer readable storage medium of claim 21, further comprising:
program instructions to restore a previous state of the non-volatile memory, wherein the step of restoring to the previous state consists of switching from the second indirection table to the first indirection table.

### Claim 24 (depends on 17)

The computer readable storage medium of claim 17, further comprising:
program instructions to switch switching from the first indirection table to the second indirection table, wherein the switching is performed by the memory controller, wherein the memory controller is a hardware memory controller.
