# US 12,602,102 B2 · Selective backup to persistent memory for volatile memory

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

- Number: US 12,602,102 B2
- Document ID: US12602102B2
- Status: Granted
- Kind: B2
- Application number: 18/231,470
- Filed: 2023-08-08
- Published: 2025-02-13
- Granted: 2026-04-14
- Earliest claimed: 2023-08-08
- Assignees: SMART Modular Technologies, Inc.
- Applicants: SMART Modular Technologies, Inc.
- Inventors: Andrew Mills
- Web page: https://patentgrep.com/patent/US12602102B2

## CPC

- G06F 1/305: {in the event of power-supply fluctuations}
- G06F 1/3275: {Power saving in memory, e.g. RAM, cache}
- G06F 11/1441: {Resetting or repowering}
- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 11/2015: {Redundant power supplies (power supply failure G06F1/30)}
- G06F 12/02: Addressing or allocation; Relocation (program address sequencing G06F9/00; arrangements for selecting an address in a digital store G11C8/00)
- G06F 12/0238: {Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory}
- G06F 13/4221: {being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus}
- G06F 2212/7203: Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
- G06F 2213/0026: PCI express
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for selective backup to persistent memory from volatile memory are disclosed. In one aspect, a memory controller includes a detection circuit that detects an address for a memory access and determines a range into which that address falls. The memory controller also includes a touched map that is configured to store an indication as to what areas (or ranges) of memory have been accessed, as determined by the detection circuit. In the event of a command or power interruption, a backup routine initially consults the touched map and only backs up those ranges which have been touched. Such selective backup may reduce the amount of time and power required to make a backup, reducing the demands placed on a backup energy source.

## Claims

### Claim 1

A memory device comprising:
a communication interface configured to couple to a bus and allow communication with a host controller therethrough, wherein the communication interface comprises a compute express link (CXL) interface and the communication is compliant with the CXL protocol;
a volatile random-access memory (RAM) portion;
a persistent memory portion;
a touch map circuit configured to store information related to addresses detected by a detection circuit; and
a backup memory controller configured to:
detect a backup event; and
copy data from the volatile RAM portion to the persistent memory portion based on the information in the touch map circuit;
receive a memory restore command from a host memory controller; and
responsive to receiving the memory restore command, determine when the portions of the volatile memory indicated in the touch map circuit exceed a threshold, and responsive to the threshold being exceeded, restore all the volatile memory portion.

### Claim 2 (depends on 1)

The memory device of claim 1, further comprising a detection circuit configured to detect an address in a memory access command that accesses the volatile RAM portion.

### Claim 3 (depends on 2)

The memory device of claim 2, wherein the backup memory controller configured to detect a backup event is configured to detect a power loss or interruption event.

### Claim 4 (depends on 1)

The memory device of claim 1, further comprising a backup energy source configured to supply power to the volatile RAM portion during a power loss event.

### Claim 5 (depends on 1)

The memory device of claim 1, wherein the memory device comprises a nonvolatile dual in-line memory module (NV-DIMM) stick.

### Claim 6 (depends on 1)

The memory device of claim 1, wherein the information corresponds to a bit that represents a range of addresses in the volatile RAM portion.

### Claim 7 (depends on 1)

The memory device of claim 1, wherein the touch map circuit is configured to store the information as a string of bits representing ranges of addresses that have been accessed.

### Claim 8 (depends on 1)

The memory device of claim 1, wherein the communication interface comprises a detection circuit configured to detect an address in a memory access command that accesses the volatile RAM portion.

### Claim 9

A method of backing up memory, comprising:
storing an indication of a memory access in a touch map circuit corresponding to a volatile memory portion;
after a backup event trigger, backing up only portions of the volatile memory portion based on indications in the touch map circuit;
receiving a memory restore command from a host memory controller; and
responsive to receiving the memory restore command, determining when the portions of the volatile memory indicated in the touch map circuit exceed a threshold, and responsive to the threshold being exceeded, restoring all the volatile memory portion.

### Claim 10 (depends on 9)

The method of claim 9, wherein receiving the memory access request comprises receiving the memory access request across a compute express link (CXL) bus and the memory access request is compliant with the CXL protocol.

### Claim 11 (depends on 9)

The method of claim 9, further comprising detecting an address associated with the memory access.

### Claim 12 (depends on 11)

The method of claim 11, wherein storing the indication, is based on the detecting.

### Claim 13 (depends on 9)

The method of claim 9, wherein storing the indication comprises storing an indication that an address in a range of addresses has been accessed.

### Claim 14 (depends on 9)

The method of claim 9, wherein, responsive to the memory restore command, restoring the portions of the volatile memory portion indicated in the touch map circuit.
