# US 10,373,696 B2 · Methods and operations using XNOR functions with flash devices and solid state drives

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

- Number: US 10,373,696 B2
- Document ID: US10373696B2
- Status: Granted
- Kind: B2
- Application number: 16/104,696
- Filed: 2018-08-17
- Published: 2019-02-21
- Granted: 2019-08-06
- Earliest claimed: 2017-08-18
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Gautam Ashok Dusija; Aaron Lee; Mrinal Kochar; Deepak Raghu
- Web page: https://patentgrep.com/patent/US10373696B2

## CPC

- G11C 16/3436: {Arrangements for verifying correct programming or erasure}
- G06F 11/08: Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G11C 11/5642: {Sensing or reading circuits; Data output circuits}
- G11C 16/26: Sensing or reading circuits; Data output circuits
- G11C: STATIC STORES (semiconductor memory devices H10B)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for writing data to a NAND flash memory is disclosed, having steps of writing a first set of data to a first memory block, writing a second set of data to a second memory block, writing a third set of data to a third memory block and writing a fourth set of data to a XNOR memory block.

## Claims

### Claim 1

A method for writing data to a NAND flash memory, comprising:
writing a first set of data to a first memory block;
writing a second set of data to a second memory block;
writing a third set of data to a third memory block;
writing a fourth set of data to a XNOR memory block;
checking the first memory block, the second memory block and the third memory block with the XNOR memory block;
correcting at least one of the first memory block, the second memory block and the third memory block when the checking indicates an error in the first memory block, the second memory block and the third memory block;
writing a fifth set of data to the first memory block;
writing a sixth set of data to the second memory block;
writing a seventh set of data to the third memory block; and
writing a eighth set of data to the XNOR memory block.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising:
checking the first memory block, the second memory block and the third memory block with the XNOR memory block; and
correcting at least one of the first memory block, the second memory block and the third memory block when the checking indicates an error in the first memory block, the second memory block and the third memory block.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising:
erasing the XNOR memory block after the correcting the at least one of the first memory block, the second memory block and the third memory block when the checking indicates an error in the first memory block, the second memory block and the third memory block.

### Claim 4 (depends on 1)

The method according to claim 1, further comprising:
compressing the data in the first set of data, the second set of data and the third set of data by an off chip compression method prior to the writing of the data.

### Claim 5 (depends on 2)

The method according to claim 2, further comprising:
exporting data from the XNOR block to a QLC memory.

### Claim 6 (depends on 5)

The method according to claim 5, further comprising:
erasing the data in the XNOR block.

### Claim 7

A device, comprising:
a NAND flash memory; and
means for creating a first memory block configured to accept a first set of data for the NAND flash memory;
means for creating a second memory block configured to accept a second set of data for the NAND flash memory;
means for creating a third memory block configured to accept a third set of data for the NAND flash memory;
means for creating a XNOR memory block configured to accept a fourth set of data for the NAND flash memory; and
means for comparing the fourth set of data to the first set of data, the second set of data and the third set of data.

### Claim 8

A method for storing data on a flash device, comprising:
creating at least two blocks of data on the flash drive;
creating at least one block related to XNOR operations on the flash drive;
receiving a command for writing at least two sets of data to the at least two blocks of data;
writing at least a first set of data to at least one created block;
writing at least a second set of data to a second of the created block;
writing at least a third set of data to the at least one block for XNOR operations, wherein the third set of data contains the first set of data and the second set of data; and
checking for errors in writing of the data in the one created block and the second of the created blocks by comparing the data in one block for XNOR operations and the first set of data in the created block and the second set of data in the second created block.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
erasing the at least one block for XNOR operations after the checking for errors.

### Claim 10 (depends on 8)

The method according to claim 8, further comprising:
copying data from the at least one block for XNOR operations to another memory.

### Claim 11 (depends on 8)

The method according to claim 8, wherein the checking for errors is provided by an enhanced post write read operation.

### Claim 12 (depends on 8)

The method according to claim 8, further comprising:
compressing data with an off chip compression method prior to the writing of data.

### Claim 13 (depends on 8)

The method according to claim 8, wherein each block is composed of at least three memory blocks.

### Claim 14 (depends on 8)

The method according to claim 8, wherein each of the blocks is one of a single level cell, multi-level cell, triple level cell or quad level cell.
