IP Library Granted Patent US 10,860,219
Granted Patent B2
US 10,860,219 · App. 16/153,016 · Granted Dec 8, 2020

Performing hybrid wear leveling operations based on a sub-total write counter

Inventors: Fangfang Zhu (San Jose, CA); Jiangli Zhu (San Jose, CA); Ning Chen (San Jose, CA); Ying Yu Tai (Mountain View, CA)
Assignee: Micron Technology, Inc.
G06F3/0616G06F3/064G06F3/0647G06F3/0673G06F12/10G06F2212/1036G06F2212/1044
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 10,860,219
App. No.
16/153,016
Granted
Dec 8, 2020
Kind
B2
Abstract

Data is copied, from a second group of data blocks in a second plurality of groups of data blocks that are mapped, to a first group of data blocks in a first set of groups of data blocks that are not mapped to include the first group of data blocks in the second set of groups of data blocks that are mapped. A sub-total write counter associated with the first group of data blocks is reset. A value of the sub-total write counter indicates a number of write operations performed on the first group of data blocks since the first group of data blocks has been included in the second set of groups of data blocks. A wear leveling operation is performed on the first group of data blocks based on the sub-total write counter.

Claims (48)

1. A method comprising:

copying data, from a second group of data blocks in a second plurality of groups of data blocks that are mapped, to a first group of data blocks in a first plurality of groups of data blocks that are not mapped, to include the first group of data blocks in the second plurality of groups of data blocks that are mapped;

resetting a first sub-total write counter associated with the first group of data blocks, wherein a value of the first sub-total write counter indicates a first number of write operations performed on the first group of data blocks since the first group of data blocks has been included in the second plurality of groups of data blocks;

determining that a value of a first total write counter associated with the first group of data blocks exceeds a value of a second total write counter associated with a second group of data blocks by a first threshold value, wherein the value of the first total write counter is a maximum value among values of a plurality of total write counters, wherein each of the plurality of total write counters is associated with a corresponding one of the groups of data blocks in the first and second pluralities of groups of data blocks, and the value of the second total write counter is a minimum value among the values of the plurality of total write counters;

determining whether the value of the first sub-total write counter exceeds a second threshold value; and

responsive to determining that the value of the first total write counter exceeds the value of the second total write counter of the second group of data blocks by the first threshold value and the value of the first sub-total write counter exceeds the second threshold value, performing, by a processing device, a wear leveling operation on the first group of data blocks.

2. The method of claim 1 , further comprising:

performing one or more writes to write data to the first group of data blocks; and

incrementing the value of the first sub-total write counter one or more times based on the one or more writes; and

performing the wear leveling operation on the first group of data blocks responsive to the value of the first sub-total write counter exceeding a threshold value.

3. The method of claim 1 , wherein the value of the first total write counter indicates a total number of write operations performed on the first group of data blocks, wherein the total number of write operations is based on a first number of write operations performed on the first group of data blocks before the first group of data blocks is included in the second plurality of groups of data blocks and a second number of write operations performed on the first group of data blocks since the first group of data blocks has been included in the second plurality of groups of data blocks.

4. The method of claim 1 , wherein performing the wear leveling operation on the first group of data blocks further comprises:

copying data of the first group of data blocks to a third group of data blocks in the first plurality of groups of data blocks to include the third group of data blocks in the second plurality of groups of data blocks; and

resetting a second sub-total write counter associated with the third group of data blocks, wherein a value of the second write counter indicates a number of write operations performed on the third group of data blocks since the third group of data blocks has been included in the second plurality of groups of data blocks.

5. The method of claim 1 , wherein performing the wear leveling operation on the first group of data blocks further comprises determining a new address of a base pointer within the first group of data blocks, wherein the base pointer represents a first index of a plurality of indices associated with the first group of data blocks.

6. The method of claim 5 , further comprising storing data at the first group of data blocks based on the new address of the base pointer within the first group of data blocks.

7. A system comprising:

a memory component; and

a processing device, operatively coupled with the memory component, to:

copy data, from a second group of data blocks in a second plurality of groups of data blocks that are mapped, to a first group of data blocks in a first plurality of groups of data blocks that are not mapped to include the first group of data blocks in the second plurality of groups of data blocks that are mapped;

reset a first sub-total write counter associated with the first group of data blocks, wherein a value of the first sub-total write counter indicates a first number of write operations performed on the first group of data blocks since the first group of data blocks has been included in the second plurality of groups of data blocks;

determine that a value of a first total write counter associated with the first group of data blocks exceeds a value of a second total write counter of a second group of data blocks by a first threshold value, wherein the value of the first total write counter is a maximum value among values of total write counters associated with the groups of data blocks in the first and second pluralities of groups of data blocks, and the value of the second total write counter is a minimum value among the values of the total write counters associated with the groups of data blocks in the first and second pluralities of groups of data blocks;

determine whether the value of the sub-total write counter exceeds a second threshold value; and

responsive to determining that the value of the first total write counter exceeds the value of the second total write counter of the second group of data blocks by the first threshold value and the value of the first sub-total write counter exceeds the second threshold value, perform a wear leveling operation on the first group of data blocks.

8. The system of claim 7 , wherein the processing device is further to:

perform one or more writes to write data to the first group of data blocks;

increment the value of the first sub-total write counter one or more times based on the one or more writes; and

perform the wear leveling operation on the first group of data blocks responsive to the value of the first sub-total write counter exceeding a threshold value.

9. The system of claim 7 , wherein the value of the first total write counter indicates a total number of write operations performed on the first group of data blocks, wherein the total number of write operations is based on a first number of write operations performed on the first group of data blocks before the first group of data blocks was included in the second plurality of groups of data blocks and a second number of write operations performed on the first group of data blocks since the first group of data blocks has been included in the second plurality of groups of data blocks.

10. The system of claim 7 , wherein, to perform the wear leveling operation on the first group of data blocks, the processing device is further to:

copy data of the first group of data blocks to a third group of data blocks in the first plurality of groups data blocks to include the third group of data blocks in the second plurality of groups of data blocks; and

reset a second write counter associated with the third group of data blocks, wherein a value of the second write counter indicates a number of write operations performed on the third group of data blocks since the third group of data blocks has been included in the second plurality of groups of data blocks.

11. The system of claim 7 , wherein, to perform the wear leveling operation on the first group of data blocks, the processing device is further to determine a new address of a base pointer within the first group of data blocks, wherein the base pointer represents a first index of a plurality of indices associated with the first group of data blocks.

12. The system of claim 11 , wherein the processing device is further to store data at the first group of data blocks based on the address of the base pointer within the first group of data blocks.

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

copy data, from a second group of data blocks in a second plurality of groups of data blocks that are mapped, to a first group of data blocks in a first plurality of groups of data blocks that are not mapped to include the first group of data blocks in the second plurality of groups of data blocks that are mapped;

reset a first sub-total write counter associated with the first group of data blocks, wherein a value of the first sub-total write counter indicates a first number of write operations performed on the first group of data blocks since the first group of data blocks has been included in the second plurality of groups of data blocks;

determine that a value of a first total write counter associated with the first group of data blocks exceeds a value of a second total write counter of a second group of data blocks by a first threshold value, wherein the value of the first total write counter is a maximum value among values of total write counters associated with the groups of data blocks in the first and second pluralities of groups of data blocks, and the value of the second total write counter is a minimum value among the values of the total write counters associated with the groups of data blocks in the first and second pluralities of groups of data blocks;

determine whether the value of the sub-total write counter exceeds a second threshold value; and

responsive to determining that the value of the first total write counter exceeds the value of the second total write counter of the second group of data blocks by the first threshold value and the value of the first sub-total write counter exceeds the second threshold value, perform a wear leveling operation on the first group of data blocks.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the processing device is further to:

perform one or more writes to write data to the first group of data blocks;

increment the value of the first sub-total write counter one or more times based on the one or more writes; and

perform the wear leveling operation on the first group of data blocks responsive to the value of the first sub-total write counter exceeding a threshold value.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the value of the first total write counter indicates a total number of write operations performed on the first group of data blocks, wherein the total number of write operations is based on a first number of write operations performed on the first group of data blocks before the first group of data blocks was included in the second plurality of groups of data blocks and a second number of write operations performed on the first group of data blocks since the first group of data blocks has been included in the second plurality of groups of data blocks.

16. The non-transitory computer-readable storage medium of claim 13 , wherein, to perform the wear leveling operation on the first group of data blocks based on the sub-total write counter, the processing device is further to:

copy data of the first group of data blocks to a third group of data blocks in the first plurality of groups data blocks to include the third group of data blocks in the second plurality of groups of data blocks; and

reset a second write counter associated with the third group of data blocks, wherein a value of the second write counter indicates a number of write operations performed on the third group of data blocks since the third group of data blocks has been included in the second plurality of groups of data blocks.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2018
From: ZHU, FANGFANG; ZHU, JIANGLI; CHEN, NING; TAI, YING YU
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047083/0733 →
Continuity (1)
Related Publication 20200110544A1 · Apr 9, 2020
Cited By (2)
US 12,271,600 US 12,572,278