IP Library Granted Patent US 12704970
Granted Patent B2
US 12704970 · App. 18/402,306 · Granted Aug 11, 2026

Managing allocation of sub-blocks in a memory sub-system

Inventors: Yu-Chung Lien (San Jose, CA); Tomer Tzvi Eliash (Sunnyvale, CA); Zhenming Zhou (San Jose, CA)
Assignee: Micron Technology, Inc.
G06F3/0619G06F3/064G06F3/0679G06F12/1009
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12704970
App. No.
18/402,306
Granted
Aug 11, 2026
Kind
B2
Abstract

A processing device, operatively coupled with a memory device, performs a first programming operation on a first set of cells associated with a first sub-block of a first die of the memory device, wherein each die of the memory device comprises a plurality of sub-blocks. The processing device identifies, based on a first predefined value, a second sub-block of a second die of the memory device on which to perform a second programming operation, wherein the first predefined value is a shift in an index value of the first sub-block of the first die of the memory device. The processing device further performs the second programming operation on a second set of cells associated with the second sub-block of the second die, wherein the second sub-block of the second die is associated with a different index value than the first sub-block of the first die.

Claims (76)

1 . A system comprising:

a memory device comprising a plurality of dies; and

a processing device, operatively coupled with the memory device, to perform operations comprising:

performing a first programming operation on a first set of cells associated with a first sub-block of a first die of the memory device, wherein each die of the memory device comprises a plurality of sub-blocks;

identifying, based on a first predefined value, a second sub-block of a second die of the memory device on which to perform a second programming operation, wherein the first predefined value is a shift in an index value of the first sub-block of the first die of the memory device, wherein the first predefined value is determined to avoid using sub-blocks with similar error characteristics across the plurality of dies; and

performing the second programming operation on a second set of cells associated with the second sub-block of the second die, wherein the second sub-block of the second die is associated with a different index value than the first sub-block of the first die.

2 . The system of claim 1 , further comprising:

receiving a request to perform a third programming operation;

identifying, based on a second predefined value, a third sub-block of a third die of the memory device, wherein the second predefined value is a shift in an index value of the second sub-block of the second die of the memory device; and

performing the third programming operation on a third set of cells associated with the third sub-block of the third die, wherein the third sub-block of the third die is associated with a different index value than the first sub-block of the first die and the second sub-block of the second die.

3 . The system of claim 1 , further comprising:

receiving a request to perform the first programming operation; and

receiving a request to perform the second programming operation.

4 . The system of claim 1 , wherein identifying, based on the first predefined value, the second sub-block of the second die of the memory device comprises:

retrieving the first predefined value from a look-up table associated with the memory device;

identifying a sub-block of the second die of the memory device, wherein the sub-block has an index value equivalent to the index value of the first sub-block of the first die;

applying the first predefined value to the index value of the identified sub-block of the second die of the memory device; and

in response to applying the first predefined value to the index value of the identified sub-block of the second die, identifying the second sub-block of the second die.

5 . The system of claim 1 , wherein identifying, based on the first predefined value, the second sub-block of the second die of the memory device comprises:

retrieving the first predefined value from a logical-to-physical (L2P) table associated with the memory device;

identifying a sub-block of the second die of the memory device, wherein the sub-block has an index value equivalent to the index value of the first sub-block of the first die;

applying the first predefined value to the index value of the identified sub-block of the second die of the memory device; and

in response to applying the first predefined value to the index value of the identified sub-block of the second die, identifying the second sub-block of the second die.

6 . The system of claim 1 , wherein the first predefined value is computed based on an error count associated with each die of the memory device.

7 . The system of claim 1 , wherein the first predefined value is computed using a hardware accelerator associated with the memory device.

8 . The system of claim 1 , further comprising:

identifying a sub-block on the second die that corresponds to a same physical location as the first sub-block on the first die; and

shifting from the identified sub-block based on the first predefined value to select the second sub-block.

9 . The system of claim 1 , wherein each die is a physically separate semiconductor substrate, wherein the sub-blocks are positioned at corresponding physical locations across the plurality of dies, wherein the shift is determined based on error characteristics shared by corresponding physical locations across the plurality of dies due to semiconductor manufacturing uniformity, and wherein shifting from sub-blocks with similar physical locations across the plurality of dies avoids clusters of high error rates due to manufacturing consistency across the plurality of dies.

10 . A method comprising:

computing a predefined value associated with each die of a memory device comprising a plurality of dies, wherein the predefined value is a shift in an index value of each sub-block associated with each die of the memory device, wherein each die of the memory device comprises a plurality of sub-blocks, wherein the predefined value is determined to avoid using sub-blocks with similar error characteristics across the plurality of dies;

receiving a request to perform a first programming operation;

identifying, based on the predefined value, a first sub-block of a first die of the memory device;

performing the first programming operation on a first set of cells associated with the first sub-block of the first die of the memory device;

identifying, based on the predefined value, a second sub-block of a second die of the memory device on which to perform a second programming operation; and

performing the second programming operation on a second set of cells associated with the second sub-block of the second die, wherein the second sub-block of the second die is associated with a different index value than the first sub-block of the first die.

11 . The method of claim 10 , further comprising:

receiving a request to perform a third programming operation;

identifying, based on the predefined value, a third sub-block of a third die of the memory device; and

performing the third programming operation on a third set of cells associated with the third sub-block of the third die, wherein the third sub-block of the third die is associated with a different index value than the first sub-block of the first die and the second sub-block of the second die.

12 . The method of claim 10 , further comprising:

receiving a request to perform the first programming operation; and

receiving a request to perform the second programming operation.

13 . The method of claim 10 , wherein identifying, based on the predefined value, the second sub-block of the second die of the memory device comprises:

retrieving the predefined value from a look-up table associated with the memory device;

identifying a sub-block of the second die of the memory device, wherein the sub-block has an index value equivalent to the index value of the first sub-block of the first die;

applying the predefined value to the index value of the identified sub-block of the second die of the memory device; and

in response to applying the predefined value to the index value of the identified sub-block of the second die, identifying the second sub-block of the second die.

14 . The method of claim 10 , wherein identifying, based on the predefined value, the second sub-block of the second die of the memory device comprises:

retrieving the predefined value from a logical-to-physical (L2P) table associated with the memory device;

identifying a sub-block of the second die of the memory device, wherein the sub-block has an index value equivalent to the index value of the first sub-block of the first die;

applying the predefined value to the index value of the identified sub-block of the second die of the memory device; and

in response to applying the predefined value to the index value of the identified sub-block of the second die, identifying the second sub-block of the second die.

15 . The method of claim 10 , wherein the predefined value is computed based on an error count associated with each die of the memory device.

16 . The method of claim 10 , wherein the predefined value is computed using a hardware accelerator associated with the memory device.

17 . A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

performing a first programming operation on a first set of cells associated with a first sub-block of a first die of a memory device comprising a plurality of dies, wherein each die of the memory device comprises a plurality of sub-blocks;

identifying, based on a first predefined value, a second sub-block of a second die of the memory device on which to perform a second programming operation, wherein the first predefined value is a shift in an index value of the first sub-block of the first die of the memory device, wherein the first predefined value is determined to avoid using sub-blocks with similar error characteristics across the plurality of dies; and

performing the second programming operation on a second set of cells associated with the second sub-block of the second die, wherein the second sub-block of the second die is associated with a different index value than the first sub-block of the first die.

18 . The non-transitory computer-readable storage medium of claim 17 , wherein the processing device is to perform operations further comprising:

identifying, based on a second predefined value, a third sub-block of a third die of the memory device, wherein the second predefined value is a shift in an index value of the second sub-block of the second die of the memory device; and

performing a third programming operation on a third set of cells associated with the third sub-block of the third die, wherein the third sub-block of the third die is associated with a different index value than the first sub-block of the first die and the second sub-block of the second die.

19 . The non-transitory computer-readable storage medium of claim 17 , wherein the processing device is to perform operations further comprising:

receiving a request to perform the first programming operation; and

receiving a request to perform the second programming operation.

20 . The non-transitory computer-readable storage medium of claim 17 , wherein to identify, based on the first predefined value, the second sub-block of the second die of the memory device, the processing device is to perform operations further comprising:

retrieving the first predefined value from a look-up table associated with the memory device;

identifying a sub-block of the second die of the memory device, wherein the sub-block has an index value equivalent to the index value of the first sub-block of the first die;

applying the first predefined value to the index value of the identified sub-block of the second die of the memory device; and

in response to applying the first predefined value to the index value of the identified sub-block of the second die, identifying the second sub-block of the second die.

21 . The non-transitory computer-readable storage medium of claim 17 , wherein to identify, based on the first predefined value, the second sub-block of the second die of the memory device, the processing device is to perform operations further comprising:

retrieving the first predefined value from a logical-to-physical (L2P) table associated with the memory device;

identifying a sub-block of the second die of the memory device, wherein the sub-block has an index value equivalent to the index value of the first sub-block of the first die;

applying the first predefined value to the index value of the identified sub-block of the second die of the memory device; and

in response to applying the first predefined value to the index value of the identified sub-block of the second die, identifying the second sub-block of the second die.

22 . The non-transitory computer-readable storage medium of claim 17 , wherein the first predefined value is computed using a hardware accelerator associated with the memory device.