IP Library Granted Patent US 11,500,780
Granted Patent B2
US 11,500,780 · App. 17/086,152 · Granted Nov 15, 2022

Recovery of validity data for a data storage system

Inventors: Caesar Cheuk-Chow Cheung (Irvine, CA); Haining Liu (Irvine, CA); Subhash Balakrishna Pillai (Irvine, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/1009G06F3/0604G06F3/0631G06F3/0679G06F12/0246G06F2212/1008G06F2212/1056G06F2212/202G06F2212/657G06F2212/7201G06F2212/7209
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 11,500,780
App. No.
17/086,152
Granted
Nov 15, 2022
Kind
B2
Abstract

The subject technology provides for recovering a validity table for a data storage system. A set of logical addresses in a mapping table is partitioned into subsets of logical addresses. Each of the subsets of logical addresses is assigned to respective processor cores in the data storage system. Each of the processor cores is configured to check each logical address of the assigned subset of logical addresses in the mapping table for a valid physical address mapped to the logical address, for each valid physical address mapped to a logical address of the assigned subset of logical addresses, increment a validity count in a local validity table associated with a blockset of the non-volatile memory corresponding to the valid physical address, and update validity counts in a global validity table associated with respective blocksets of the non-volatile memory with the validity counts in the local validity table.

Claims (71)

1. A data storage system, comprising:

a memory; and

a controller configured to cause:

arranging a set of logical addresses into a plurality of subsets of logical addresses, logical addresses of the set of logical addresses being associated with respective physical addresses of the memory;

assessing each logical address in the plurality of subsets of logical addresses for a valid physical address corresponding to the logical address;

for each valid physical address corresponding to a logical address of the plurality of subsets of logical addresses, incrementing a validity count in a first validity record associated with a block of the memory corresponding to the valid physical address; and

providing validity counts in a second validity record associated with respective blocks of the memory with the validity counts in the first validity records,

wherein:

one of the validity counts in the second validity record represents a sum of validity counts from at least two of the first validity records;

the one of the validity counts in the second validity record is associated with at least two blocks of the memory;

a first one of the at least two blocks belongs to a first memory device of a set of memory devices;

a second one of the at least two blocks belongs to a second memory device of the set of memory devices; and

the second memory device is different from the first memory device.

2. The data storage system of claim 1 , wherein the second validity record is separate and different from the first validity records, and the second validity record exists concurrently with the first validity records.

3. The data storage system of claim 1 , wherein the controller comprises processor cores, and wherein at least one of the processor cores is configured to cause:

accumulating the validity counts from the respective first validity records; and

maintaining the validity counts in the second validity record associated with respective blocks of the memory with the accumulated validity counts.

4. The data storage system of claim 1 , wherein the controller is configured to cause:

indexing a record using the set of logical addresses arranged sequentially; and

identifying a respective starting index and a respective ending index from the set of logical addresses corresponding to the respective subset of logical addresses assigned to each processor core.

5. The data storage system of claim 1 , wherein the controller is configured to cause:

designating each of the plurality of subsets of logical addresses to a respective processor core in the data storage system,

wherein a number of partitions of the logical addresses corresponds to a number of processor cores, wherein the controller is configured to determine a number of available processor cores in the data storage system, and wherein the number of processor cores is the number of available processor cores.

6. The data storage system of claim 1 , wherein the controller is configured to cause: partitioning the set of logical addresses after an occurrence of an abnormal shutdown of the data storage system.

7. The data storage system of claim 1 , wherein the memory comprises a plurality of memory devices, and wherein each of the blocks comprises a respective physical block from one of the plurality of memory devices.

8. The data storage system of claim 7 , wherein each physical address is configured to identify a physical data unit, and wherein each physical block comprises a plurality of physical data units.

9. The data storage system of claim 1 , wherein:

the first one of the at least two blocks is associated with a first subset of the plurality of subsets of logical addresses; and

the second one of the at least two blocks is associated with a second subset of the plurality of subsets of logical addresses.

10. A machine-implemented method, comprising:

arranging a set of logical addresses into a plurality of subsets of logical addresses, logical addresses of the set of logical addresses being associated with respective physical addresses of a memory of a data storage system;

assessing each logical address in the plurality of subsets of logical addresses for a valid physical address corresponding to the logical address;

for each valid physical address corresponding to a logical address of the plurality of subsets of logical addresses, incrementing a validity count in a first validity record associated with a block of the memory corresponding to the valid physical address; and

providing validity counts in a second validity record associated with respective blocks of the memory with the validity counts in the first validity records,

wherein:

one of the validity counts in the second validity record represents a sum of validity counts from at least two of the first validity records;

the one of the validity counts in the second validity record is associated with at least two blocks of the memory;

a first one of the at least two blocks belongs to a first memory device of a set of memory devices;

a second one of the at least two blocks belongs to a second memory device of the set of memory devices; and

the second memory device is different from the first memory device.

11. The machine-implemented method of claim 10 , wherein the second validity record is separate from the first validity records, and the second validity record exists concurrently with the first validity records.

12. The machine-implemented method of claim 10 , comprising:

accumulating the validity counts from the respective first validity records; and

maintaining the validity counts in the second validity record associated with respective blocks of the memory with the accumulated validity counts.

13. The machine-implemented method of claim 10 , comprising:

indexing a record using the set of logical addresses arranged sequentially; and

identifying a respective starting index and a respective ending index from the set of logical addresses corresponding to the respective subset of logical addresses assigned to each processor core.

14. The machine-implemented method of claim 10 , comprising:

designating each of the plurality of subsets of logical addresses to a respective processor core in the data storage system,

wherein a number of partitions of the logical addresses corresponds to a number of processor cores, wherein the machine-implemented method comprises determining a number of available processor cores in the data storage system, and wherein the number of processor cores is the number of available processor cores.

15. The machine-implemented method of claim 10 , comprising:

detecting a prior abnormal shutdown of the data storage system; and

partitioning the set of logical addresses in response to detecting the prior abnormal shutdown.

16. An apparatus, comprising:

means for arranging a set of logical addresses into a plurality of subsets of logical addresses, logical addresses of the set of logical addresses being associated with respective physical addresses of a memory of a data storage system;

means for assessing each logical address in the plurality of subsets of logical addresses for a valid physical address corresponding to the logical address;

for each valid physical address corresponding to a logical address of the plurality of subsets of logical addresses, means for incrementing a validity count in a first validity record associated with a block of the memory corresponding to the valid physical address; and

means for providing validity counts in a second validity record associated with respective blocks of the memory with the validity counts in the first validity records,

wherein:

one of the validity counts in the second validity record represents a sum of validity counts from at least two of the first validity records;

the one of the validity counts in the second validity record is associated with at least two blocks of the memory;

a first one of the at least two blocks belongs to a first memory device of a set of memory devices;

a second one of the at least two blocks belongs to a second memory device of the set of memory devices; and

the second memory device is different from the first memory device.

17. The apparatus of claim 16 , wherein the second validity record is separate from the first validity records, and the second validity record exists concurrently with the first validity records.

18. The apparatus of claim 16 , comprising:

means for accumulating the validity counts from the respective first validity records; and

means for maintaining the validity counts in the second validity record associated with respective blocks of the memory with the accumulated validity counts.

19. The apparatus of claim 16 , comprising:

means for indexing a record using the set of logical addresses arranged sequentially; and

means for identifying a respective starting index and a respective ending index from the set of logical addresses corresponding to the respective subset of logical addresses assigned to each processor core.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 055404 FRAME 0942 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0407 →
SECURITY INTEREST Recorded Feb 24, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 055404/0942 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2020
From: CHEUNG, CAESAR CHEUK-CHOW; LIU, HAINING; PILLAI, SUBHASH BALAKRISHNA
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 054353/0280 →