# US 11,899,582 B2 · Efficient memory dump

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

- Number: US 11,899,582 B2
- Document ID: US11899582B2
- Status: Granted
- Kind: B2
- Application number: 17/383,128
- Filed: 2021-07-22
- Published: 2021-11-18
- Granted: 2024-02-13
- Earliest claimed: 2019-04-12
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Yuhong Mao; Russell Sears
- Web page: https://patentgrep.com/patent/US11899582B2

## CPC

- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- G11C 29/52: Protection of memory contents; Detection of errors in memory contents
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A method of operating a storage unit having non-volatile random-access memory (NVRAM) and solid-state memory is provided. The method includes transferring contents of the NVRAM to the solid-state memory, in response to detecting a power loss. The method includes during the transferring, having each of a plurality of channels in parallel, reading one or more of a plurality of logical unit numbers (LUNs) each corresponding to a portion of the NVRAM, performing an XOR of data of each of the one or more of the plurality of LUNs with data of a preceding LUN, and writing results of the XOR to the solid-state memory.

## Claims

### Claim 1

A method comprising:
transferring contents of a non-volatile memory to a solid-state memory, in response to detecting a power loss; and
in response to detecting the power loss, reading a plurality of channels in parallel, wherein each channel is assigned a logical unit numbers (LUN), and performing an XOR of data of each LUN with data of a preceding LUN.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
during the transferring, reading each of the plurality of channels in parallel includes reading the preceding LUN.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
assigning a subset of LUNs of the NVRAM to each of the plurality of channels.

### Claim 4 (depends on 1)

The method of claim 1, wherein each of the plurality of channels in parallel write results of the XOR to the solid-state memory and a RAID 5 scheme is implemented on the plurality of LUNs.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
rebuilding the plurality of LUNs sequentially from either an initial LUN or backward from a final LUN.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
writing results of the XOR operations to the solid-state memory.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
operating a state machine, in each of the plurality of channels, for the reading.

### Claim 8

A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to:
transfer contents of a non-volatile memory to a solid-state memory, in response to detecting a power loss; and
in response to detecting the power loss, reading a plurality of channels in parallel, wherein each channel is assigned a logical unit numbers (LUN), and performing an XOR of data of each LUN with data of a preceding LUN.

### Claim 9 (depends on 8)

The computer-readable media of claim 8, wherein the instructions are further to cause the processor to:
during the transfer, reading each of the plurality of channels in parallel includes reading the preceding LUN.

### Claim 10 (depends on 8)

The computer-readable media of claim 8, wherein the instructions are further to cause the processor to:
assign a subset of data chunks of the non-volatile memory to each of the plurality of command slots.

### Claim 11 (depends on 8)

The computer-readable media of claim 8, wherein each of the plurality of channels in parallel write results of the XOR to the solid-state memory and a RAID 5 scheme is implemented on the plurality of LUNs.

### Claim 12 (depends on 8)

The computer-readable media of claim 8, wherein the instructions are further to cause the processor to: rebuild data chunks of the non-volatile memory sequentially beginning from one of an initial data chunk or from a final data chunk.

### Claim 13 (depends on 8)

The computer-readable media of claim 8, wherein the instructions are further to cause the processor to: operate a state machine, in each of the plurality of channels, for the reading.

### Claim 14

A storage unit, comprising:
non-volatile memory;
solid-state memory; and
one or more processors or logic to:
transfer contents of a non-volatile memory to a solid-state memory, in response to detecting a power loss; and
in response to detecting the power loss, reading a plurality of channels in parallel, wherein each channel is assigned a logical unit numbers (LUN), and performing an XOR of data of each LUN with data of a preceding LUN.

### Claim 15 (depends on 14)

The storage unit of claim 14, wherein the one or more processors or logic are further to:
during the transfer, reading each of the plurality of channels in parallel includes reading the preceding LUN.

### Claim 16 (depends on 14)

The storage unit of claim 14, wherein the one or more processors or logic are further to:
assign, to each of the plurality of channels, a subset of LUNs of the non-volatile memory.

### Claim 17 (depends on 14)

The storage unit of claim 14, wherein having each of the plurality of channels in parallel write the results of the operations to the solid-state memory comprises implementing a RAID 5 scheme on the plurality of LUNs.

### Claim 18 (depends on 14)

The storage unit of claim 14, wherein the one or more processors or logic are further to:
rebuild the plurality of LUNs from the solid-state memory, sequentially beginning from one of an initial LUN or backward from a final LUN.

### Claim 19 (depends on 14)

The storage unit of claim 14, wherein a first result comprises a first LUN XOR the parity value, which equals the first LUN, and a final result of the XOR comprises the parity value XOR a final LUN, which equals the final LUN.

### Claim 20 (depends on 14)

The storage unit of claim 14, further comprising:
a plurality of state machines, wherein the one or more processors or logic are further to operate at least one of the plurality of state machines in each of the plurality of channels, for the transfer.
