# US 12,118,216 B2 · Recycled version number values in flash memory

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

- Number: US 12,118,216 B2
- Document ID: US12118216B2
- Status: Granted
- Kind: B2
- Application number: 17/679,676
- Filed: 2022-02-24
- Published: 2022-06-09
- Granted: 2024-10-15
- Earliest claimed: 2008-01-02
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Wanmo Wong
- Web page: https://patentgrep.com/patent/US12118216B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 2212/7209: Validity control, e.g. using flags, time stamps or sequence numbers
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Various embodiments include methods, apparatus, and systems for assigning a plurality of version number values to instances of a logical entity of a memory device. Each version number value of the plurality version number values may be separately assigned to one of the instances of the logical entity. The version number values may be recycled after the plurality of version number values are assigned. Other embodiments including additional methods, apparatus, and systems are disclosed.

## Claims

### Claim 1

A method comprising:
storing, by circuitry of a component that includes at least a memory device, a first version number value associated with a first instance of a first logical block of the memory device, the first instance of the first logical block stored at least partially in a first physical block of the memory device;
storing, by the circuitry of the component, a second version number value associated with a second instance of the first logical block, the second instance of the first logical block stored at least partially in a second physical block of the memory device;
storing, by the circuitry of the component, the first version number value associated with a third instance of the first logical block, the third instance of the first logical block stored at least partially in a third physical block of the memory device, the third instance comprising an update of a first logical sector of the first physical block and a copy of a second logical sector of the second physical block;
determining, by the circuitry of the component, a number of instances of a second logical block;
comparing, by the circuitry of the component, the number of instances to a predetermined version limit;
based on a result of the comparing, determining, by the circuitry of the component, that an error has occurred; and
based on the determining that the error has occurred, performing, by the circuitry of the component, an error correction process.

### Claim 2 (depends on 1)

The method of claim 1, further comprising storing the third instance of the first logical block by storing logical sectors in a sequential order.

### Claim 3 (depends on 2)

The method of claim 2, wherein the storing of the third instance of the first logical block occurs when the second physical block has an insufficient cell quantity to store the update of the first logical sector.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
storing the second instance of the first logical block at least partially in the second physical block; and
storing a fourth instance of the first logical block, the fourth instance of the first logical block stored at least partially in a fourth physical block, wherein the fourth instance of the first logical block is stored after the second instance of the first logical block is stored and before the third instance of the first logical block is stored, and wherein the third instance comprises a copy of a portion of the fourth instance of the first logical block from the fourth physical block of the memory device.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
assigning a fourth version number value to the fourth instance.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
marking at least one of the first instance and the second instance as invalid after the first version number value stored in association with the third instance.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
deleting at least one of the first and second instances after the first version number value stored in association with the third instance of the first logical block.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
recycling a plurality of version number values after the plurality of version number values reaches a version quantity limit.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
correcting a quantity of instances in the memory device when the quantity of instances in the memory device is greater than an instance quantity limit.

### Claim 10

An apparatus comprising:
a memory array including a first physical block, a second physical block, and a third physical block; and
circuitry configured to perform operations comprising:
storing a first version number value associated with a first instance of a first logical block of a memory device, the first instance of the first logical block stored at least partially in the first physical block;
storing a second version number value associated with a second instance of the first logical block, the second instance of the first logical block stored at least partially in the second physical block;
storing a third instance of the first logical block, the first version number value associated with the third instance of the first logical block stored at least partially in the third physical block, the third instance comprising an update of a first logical sector of the first physical block and a copy of a second logical sector of the second physical block;
determining a number of instances of a second logical block;
comparing the number of instances to a predetermined version limit;
based on a result of the comparing, determining that an error has occurred; and
based on the determining that the error has occurred, performing an error correction process.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the operations further comprise storing the third instance of the first logical block by storing logical sectors in a sequential order.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein storing the third instance of the first logical block occurs when the second physical block has an insufficient cell quantity to store the update of the first logical sector.

### Claim 13 (depends on 10)

The apparatus of claim 10, wherein the operations further comprise:
storing the second instance of the first logical block at least partially in the second physical block; and
storing a fourth instance of the first logical block, the fourth instance of the first logical block stored at least partially in a fourth physical block, wherein the fourth instance of the first logical block is stored after the second instance of the first logical block is stored and before the third instance of the first logical block is stored, and wherein the third instance comprises a copy of a portion of the fourth instance of the first logical block from the fourth physical block of the memory device.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the operations further comprise:
assigning a fourth version number value to the fourth instance.

### Claim 15 (depends on 13)

The apparatus of claim 13, wherein the operations further comprise:
marking at least one of the first instance and the second instance as invalid after the first version number value stored in association with the third instance.

### Claim 16 (depends on 10)

The apparatus of claim 10, wherein the operations further comprise:
recycling a plurality of version number values after the plurality of version number values reaches a version quantity limit.

### Claim 17 (depends on 10)

The apparatus of claim 10, wherein the operations further comprise deleting at least one of the first and second instances after the first version number value stored in association with the third instance of the first logical block.

### Claim 18 (depends on 10)

The apparatus of claim 10, wherein the operations further comprise correcting a quantity of instances in the memory device when the quantity of instances in the memory device is greater than an instance quantity limit.

### Claim 19 (depends on 1)

The method of claim 1, wherein the error correction process comprises determining that one of the instances of the second logical block is corrupted and removing the corrupted instance.

### Claim 20 (depends on 10)

The apparatus of claim 10, wherein the error correction process comprises determining that one of the instances of the second logical block is corrupted and removing the corrupted instance.
