# US 11,029,874 B2 · Rolling XOR protection in efficient pipeline

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

- Number: US 11,029,874 B2
- Document ID: US11029874B2
- Status: Granted
- Kind: B2
- Application number: 16/526,866
- Filed: 2019-07-30
- Published: 2021-02-04
- Granted: 2021-06-08
- Earliest claimed: 2019-07-30
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Yoav Markus; Alexander Bazarsky; Alexander Kalmanovich
- Web page: https://patentgrep.com/patent/US11029874B2

## CPC

- G06F 3/0647: {Migration mechanisms}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0673: {Single storage device}
- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2201/83: the solution involving signatures
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/7203: Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
- G06F 2212/7207: management of metadata or control data
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, apparatus and methods for generation of XOR signature metadata and XOR signature management are presented. In one or more embodiments, a storage device controller includes a host interface, configured to receive one or more string lines (SLs) of data from a host, the one or more SLs to be programmed into a non-volatile memory (NVM), and processing circuitry. The processing circuitry is configured to, for each of the one or more SLs, generate signature metadata and provide the signature metadata in a header of the SL. The processing circuitry is still further configured to XOR two or more of the SLs with their respective signature metadata to generate a snapshot, and write the snapshot to the NVM.

## Claims

### Claim 1

A storage device controller comprising:
a host interface, configured to receive one or more string lines (SLs) of data from a host, the one or more SLs to be programmed into a non-volatile memory (NVM); and
processing circuitry, configured to:
for each of the one or more SLs:
generate signature metadata; and
provide the signature metadata in a header of the SL;
XOR two or more SLs of the one or more SLs with their respective signature metadata to generate a signature; and
write the signature to the NVM, wherein the signature includes a signature portion and a metadata portion, the signature portion including an XOR of the two or more SLs, and the metadata portion including an XOR of the signature metadata of the two or more SLs.

### Claim 2 (depends on 1)

The storage device controller of claim 1, wherein the processing circuitry is further configured to write the one or more SLs to MLC NVM and the signature to SLC NVM.

### Claim 3 (depends on 2)

The storage device controller of claim 2, wherein the processing circuitry is further configured to:
determine that the one or more SLs have been safely written to the MLC NVM; and
delete the signature from the SLC NVM.

### Claim 4 (depends on 1)

The storage device controller of claim 1, wherein the metadata of the signature indicates each SL that is used to generate the signature portion.

### Claim 5 (depends on 4)

The storage device controller of claim 4, wherein the one or more SLs are to be each respectively programmed into a set of dies.

### Claim 6 (depends on 5)

The storage device controller of claim 5, wherein within the signature metadata for each SL a die to which a SL is to be programmed is indicated by a relative position of an identifier of the die within a pre-defined metadata field.

### Claim 7 (depends on 5)

The storage device controller of claim 5, wherein within the signature metadata for each SL a logical die to which a SL is to be programmed is indicated by a relative position of an identifier of the logical die within a pre-defined metadata field.

### Claim 8

A storage device controller comprising:
a host interface, configured to receive one or more string lines (SLs) of data from a host, the one or more SLs to be programmed into a non-volatile memory (NVM); and
processing circuitry, configured to:
for each of the one or more SLs:
generate signature metadata; and
provide the signature metadata in a header of the SL;
XOR two or more SLs of the one or more SLs with their respective signature metadata to generate a signature; and
write the signature to the NVM;
wherein the processing circuitry is further configured to, following power restoration after an ungraceful shut down (UGSD):
determine if at a time of the UGSD there was an ongoing write;
read a metadata portion of the last signature stored in SLC NVM; and
determine if any of the one or more SLs is absent from the signature.

### Claim 9 (depends on 8)

The storage device controller of claim 8, wherein the processing circuitry is further configured to, for each of the SLs absent from the signature:
XOR SLs missing from the last stored signature with the last stored signature to complete the signature; and
write the completed signature to SLC NVM.

### Claim 10

A storage device, comprising:
SLC non-volatile memory (NVM) and MLC NVM; and
a device controller, comprising:
a host interface, configured to receive a current string line (SL) of data from a host, the current SL one of a set of SLs to be programmed into dies of the MLC NVM; and
processing circuitry, configured to:
generate signature metadata for the current SL and store the metadata in temporary storage by overwriting a previously stored version of the signature metadata;
XOR the current SL with a previously stored version of a signature to generate an updated signature and store the updated signature in temporary storage by overwriting a previous version of the signature, wherein the signature includes a signature portion and a metadata portion, the signature portion including an XOR of the set of SLs, and the metadata portion including an XOR of the signature metadata of the set of SLs; and
program both the updated signature and the signature metadata to a block of the SLC NVM.

### Claim 11 (depends on 10)

The storage device of claim 10, wherein the device controller further comprises random access memory (RAM), and wherein the RAM comprises the temporary storage.

### Claim 12

A storage device, comprising:
SLC non-volatile memory (NVM) and MLC NVM; and
a device controller, comprising:
a host interface, configured to receive a current string line (SL) of data from a host, the current SL one of a set of SLs to be programmed into dies of the MLC NVM; and
processing circuitry, configured to:
generate signature metadata for the current SL and store the metadata in temporary storage by overwriting a previously stored version of the signature metadata;
XOR the current SL with a previously stored version of a signature to generate an updated signature and store the updated signature in temporary storage by overwriting a previous version of the signature; and
program both the updated signature and the signature metadata to a block of the SLC NVM, wherein if there is no previous version of signature metadata in the temporary storage, the processing circuitry is further configured to store the signature metadata for the current SL in the temporary storage.

### Claim 13

A storage device, comprising:
SLC non-volatile memory (NVM) and MLC NVM; and
a device controller, comprising:
a host interface, configured to receive a current string line (SL) of data from a host, the current SL one of a set of SLs to be programmed into dies of the MLC NVM; and
processing circuitry, configured to:
generate signature metadata for the current SL and store the metadata in temporary storage by overwriting a previously stored version of the signature metadata;
XOR the current SL with a previously stored version of a signature to generate an updated signature and store the updated signature in temporary storage by overwriting a previous version of the signature; and
program both the updated signature and the signature metadata to a block of the SLC NVM, wherein if there is no previous version of the signature in the temporary storage, the processing circuitry is further configured to store the current SL in the temporary storage.

### Claim 14

A storage device, comprising:
SLC non-volatile memory (NVM) and MLC NVM; and
a device controller, comprising:
a host interface, configured to receive a current string line (SL) of data from a host, the current SL one of a set of SLs to be programmed into dies of the MLC NVM; and
processing circuitry, configured to:
generate signature metadata for the current SL and store the metadata in temporary storage by overwriting a previously stored version of the signature metadata;
XOR the current SL with a previously stored version of a signature to generate an updated signature and store the updated signature in temporary storage by overwriting a previous version of the signature; and
program both the updated signature and the signature metadata to a block of the SLC NVM, wherein the set of SLs is to be programmed into a set of dies of the MLC, and wherein the signature metadata indicates a number N of the SLs is to be programmed into each die.

### Claim 15

A storage device, comprising:
SLC non-volatile memory (NVM) and MLC NVM; and
a device controller, comprising:
a host interface, configured to receive a current string line (SL) of data from a host, the current SL one of a set of SLs to be programmed into dies of the MLC NVM; and
processing circuitry, configured to:
generate signature metadata for the current SL and store the metadata in temporary storage by overwriting a previously stored version of the signature metadata;
XOR the current SL with a previously stored version of a signature to generate an updated signature and store the updated signature in temporary storage by overwriting a previous version of the signature; and
program both the updated signature and the signature metadata to a block of the SLC NVM, wherein the signature metadata for the current SL indicates how many SLs, including the current SL, are included in the updated signature.

### Claim 16

A storage device, comprising:
SLC non-volatile memory (NVM) and MLC NVM; and
a device controller, comprising:
a host interface, configured to receive a current string line (SL) of data from a host, the current SL one of a set of SLs to be programmed into dies of the MLC NVM; and
processing circuitry, configured to:
generate signature metadata for the current SL and store the metadata in temporary storage by overwriting a previously stored version of the signature metadata;
XOR the current SL with a previously stored version of a signature to generate an updated signature and store the updated signature in temporary storage by overwriting a previous version of the signature; and
program both the updated signature and the signature metadata to a block of the SLC NVM, wherein the signature metadata for the current SL indicates a location of a first protected die page.

### Claim 17

An apparatus, comprising:
memory means;
means for receiving one or more string lines (SLs) of data from a host;
means for programming the one or more SLs to the memory means;
means for generating signature metadata for the one or more SLs, wherein a signature includes a signature portion and a metadata portion, the signature portion including an XOR of the one or more SLs, and the metadata portion including an XOR of the signature metadata of the one or more SLs;
means for XORing the one or more SLs with a previously stored signature metadata to generate an updated signature metadata; and
means for programming the updated signature metadata and the signature metadata to the memory means.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the memory means comprises SLC non-volatile memory (NVM) and MLC NVM.

### Claim 19

An apparatus, comprising:
memory means;
means for receiving one or more string lines (SLs) of data from a host;
means for programming the one or more SLs to the memory means;
means for generating signature metadata for the one or more SLs;
means for XORing the one or more SLs with a previously stored signature metadata to generate an updated signature metadata;
means for programming the updated signature metadata and the signature metadata to the memory means;
means for determining, following an ungraceful shut down (UGSD), whether a write process to a MLC NVM was ongoing;
means for reading metadata of a last written XOR signature to a SLC NVM, the XOR signature protecting data being written to the MLC NVM, wherein the means for reading metadata further comprises means for obtaining memory locations that were indicated as absent from the last XOR signature;
means for determining if the last written XOR signature is a partial signature;
means for completing the XOR signature; and
means for writing the completed XOR signature to SLC NVM.
