# US 10,372,355 B2 · Managing partial superblocks in a NAND device

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

- Number: US 10,372,355 B2
- Document ID: US10372355B2
- Status: Granted
- Kind: B2
- Application number: 15/858,383
- Filed: 2017-12-29
- Published: 2019-07-04
- Granted: 2019-08-06
- Earliest claimed: 2017-12-29
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Jianmin Huang; Kulachet Tanpairoj; Harish Singidi; Ting Luo
- Web page: https://patentgrep.com/patent/US10372355B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 2212/1024: Latency reduction
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/173: Vehicle or other transportation
- G06F 2212/68: Details of translation look-aside buffer [TLB]
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7204: Capacity control, e.g. partitioning, end-of-life degradation
- 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

Devices and techniques for managing partial superblocks in a NAND device are described herein. A set of superblock candidates is calculated. Here, a superblock may have a set of blocks that share a same position in each plane in each die of a NAND array of the NAND device. A set of partial super block candidates is also calculated. A partial superblock candidate is a superblock candidate that has at least one plane that has a bad block. A partial superblock use classification may then be obtained. Superblocks may be established for the NAND device by using members of the set of superblock candidates after removing the set of partial superblock candidates from the set of superblock candidates. Partial superblocks may then be established for classes of data in the NAND device according to the partial superblock use classification.

## Claims

### Claim 1

A NAND device for managing partial superblocks, the NAND device comprising:
a NAND array; and
a controller arranged to:
calculate a set of superblock candidates, a superblock comprising a set of blocks that share a same position in each plane in each die of the NAND array, each plane having at most one block from the set of blocks;
calculate a set of partial super block candidates, a partial superblock candidate being a superblock candidate that has at least one plane that has a bad block;
obtain a partial superblock use classification, wherein the use classification includes a set of groups, a member of the set of groups including an allocation of partial superblocks to a set of the class of data, and wherein a group in the set of groups allocates partial superblocks to store the first-level translation table, the firmware, and the bad-block-table classes of data;
establish superblocks for the NAND device by using members of the set of superblock candidates the set of partial superblock candidates are removed from the set of superblock candidates; and
establish partial superblocks for classes of data in the NAND device according to the partial superblock use classification.

### Claim 2 (depends on 1)

The NAND device of claim 1, wherein partial super block candidates have a minimum number of planes with a good block in the same position.

### Claim 3 (depends on 2)

The NAND device of claim 2, wherein the minimum number of planes is a percentage of available planes.

### Claim 4 (depends on 2)

The NAND device of claim 2, wherein the minimum number of planes is three when there are four planes in a die of the NAND array.

### Claim 5 (depends on 1)

The NAND device of claim 1, wherein the classes of data are at least one of user, over provisioning, single level cache, logical-to-physical mapping, first-level translation table, firmware, bad-block-table, replay-protect memory block, or boot data.

### Claim 6 (depends on 1)

The NAND device of claim 1, wherein the controller is arranged to calculate the set of superblock candidates and calculate the set of partial superblock candidates in response to a download of firmware to the NAND device.

### Claim 7 (depends on 1)

The NAND device of claim 1, wherein the controller is arranged to calculate the set of superblock candidates and calculate the set of partial superblock candidates in response to a change in a bad-block-table of the NAND device.

### Claim 8 (depends on 1)

The NAND device of claim 1, wherein a group in the set of groups allocates partial superblocks to store the user, the over provisioning, the single level cache, and the logical-to-physical mapping classes of data.

### Claim 9 (depends on 1)

The NAND device of claim 1, wherein a group in the set of groups allocates partial superblocks to store the replay-protect memory block, and the boot classes of data.

### Claim 10 (depends on 1)

The NAND device of claim 1, wherein a group in the set of groups includes a maximum ratio of partial superblocks to superblocks to allocate for a class of data.

### Claim 11 (depends on 1)

The NAND device of claim 1, wherein the set of groups are ordered, and wherein the partial superblock use classification specifies allocation of partial superblocks first to a group with a higher position in the order than to a group with a lower position in the order.

### Claim 12

A method for managing partial superblocks in a NAND device, the method comprising:
calculating a set of superblock candidates, a superblock comprising a set of blocks that share a same position in each plane in each die of a NAND array of the NAND device, each plane having at most one block from the set of blocks,
calculating a set of partial super block candidates, a partial superblock candidate being a superblock candidate that has at least one plane that has a bad block;
obtaining a partial superblock use classification, wherein the partial superblock use classification includes a set of groups, a member of the set of groups including an allocation of partial superblocks to a set of the class of data, and wherein a group in the set of groups allocates partial superblocks to store the first-level translation table, the firmware, and the bad-block-table classes of data;
establishing superblocks for the NAND device by using members of the set of superblock candidates after removing the set of partial superblock candidates from the set of superblock candidates; and
establishing partial superblocks for classes of data in the NAND device according to the partial superblock use classification.

### Claim 13 (depends on 12)

The method of claim 12, wherein partial super block candidates have a minimum number of planes with a good block in the same position.

### Claim 14 (depends on 13)

The method of claim 13, wherein the minimum number of planes is a percentage of available planes.

### Claim 15 (depends on 13)

The method of claim 13, wherein the minimum number of planes is three when there are four planes in a die of the NAND array.

### Claim 16 (depends on 12)

The method of claim 12, wherein the classes of data are at least one of user, over provisioning, single level cache, logical-to-physical mapping, first-level translation table, firmware, bad-block-table, replay-protect memory block, or boot data.

### Claim 17 (depends on 12)

The method of claim 12, wherein calculating the set of superblock candidates and calculating the set of partial superblock candidates is performed when firmware is downloaded to the NAND device.

### Claim 18 (depends on 12)

The method of claim 12, wherein calculating the set of superblock candidates and calculating the set of partial superblock candidates is performed when a bad-block-table of the NAND device is changed.

### Claim 19 (depends on 12)

The method of claim 12, wherein a group in the set of groups allocates partial superblocks to store the user, the over provisioning, the single level cache, and the logical-to-physical mapping classes of data.

### Claim 20 (depends on 12)

The method of claim 12, wherein a group in the set of groups allocates partial superblocks to store the replay-protect memory block, and the boot classes of data.

### Claim 21 (depends on 12)

The method of claim 12, wherein a group in the set of groups includes a maximum ratio of partial superblocks to superblocks to allocate for a class of data.

### Claim 22 (depends on 12)

The method of claim 12, wherein the set of groups are ordered, and wherein the partial superblock use classification specifies allocation of partial superblocks first to a group with a higher position in the order than to a group with a lower position in the order.

### Claim 23

At least one non-transitory machine readable medium including instructions for managing partial superblocks in a NAND device, the instructions, when executed by processing circuitry, cause the processing circuitry to perform operations comprising:
calculating a set of superblock candidates, a superblock comprising a set of blocks that share a same position in each plane in each die of a NAND array of the NAND device, each plane having at most one block from the set of blocks;
calculating a set of partial super block candidates, a partial superblock candidate being a superblock candidate that has at least one plane that has a bad block;
obtaining a partial superblock use classification, wherein the partial superblock use classification includes a set of groups, a member of the set of groups including an allocation of partial superblocks to a set of the class of data, and wherein a group in the set of groups allocates partial superblocks to store the first-level translation table, the firmware, and the bad-block-table classes of data;
establishing superblocks for the NAND device by using members of the set of superblock candidates after removing the set of partial superblock candidates from the set of superblock candidates; and
establishing partial superblocks for classes of data in the NAND device according to the partial superblock use classification.

### Claim 24 (depends on 23)

The at least one machine readable medium of claim 23, wherein partial super block candidates have a minimum number of planes with a good block in the same position.

### Claim 25 (depends on 24)

The at least one machine readable medium of claim 24, wherein the minimum number of planes is a percentage of available planes.

### Claim 26 (depends on 24)

The at least one machine readable medium of claim 24, wherein the minimum number of planes is three when there are four planes in a die of the NAND array.

### Claim 27 (depends on 23)

The at least one machine readable medium of claim 23, wherein the classes of data are at least one of user, over provisioning, single level cache, logical-to-physical mapping, first-level translation table, firmware, bad-block-table, replay-protect memory block, or boot data.

### Claim 28 (depends on 23)

The at least one machine readable medium of claim 23, wherein calculating the set of superblock candidates and calculating the set of partial superblock candidates is performed when firmware is downloaded to the NAND device.

### Claim 29 (depends on 23)

The at least one machine readable medium of claim 23, wherein calculating the set of superblock candidates and calculating the set of partial superblock candidates is performed when a bad-block-table of the NAND device is changed.

### Claim 30 (depends on 23)

The at least one machine readable medium of claim 23, wherein a group in the set of groups allocates partial superblocks to store the user, the over provisioning, the single level cache, and the logical-to-physical mapping classes of data.

### Claim 31 (depends on 23)

The at least one machine readable medium of claim 23, wherein a group in the set of groups allocates partial superblocks to store the replay-protect memory block, and the boot classes of data.

### Claim 32 (depends on 23)

The at least one machine readable medium of claim 23, wherein a group in the set of groups includes a maximum ratio of partial superblocks to superblocks to allocate for a class of data.

### Claim 33 (depends on 21)

The at least one machine readable medium of claim 21, wherein the set of groups are ordered, and wherein the partial superblock use classification specifies allocation of partial superblocks first to a group with a higher position in the order than to a group with a lower position in the order.
