IP Library › Granted Patent US 12,430,037
Granted Patent B2
US 12,430,037 · App. 18/354,310 · Granted Sep 30, 2025

Illusory free data storage space in data storage devices

Inventors: Kyoungil Kim (San Jose, CA); Hongmei Xie (Sunnyvale, CA)
Assignee: Sandisk Technologies, Inc.
G06F3/0616G06F3/064G06F3/0647G06F3/0688
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 12,430,037
App. No.
18/354,310
Filed
Jul 18, 2023
Granted
Sep 30, 2025
Kind
B2
Art Unit
2139
USPC
711/103
Abstract

Data storage devices having the same capacity but with a different number of spare blocks and a different number of unusable blocks may cause device-to-device performance variance. This variance may be minimized by using illusory free blocks for relocation while using actual free blocks for other operations. In this regard, each data storage device having the same storage capacity may include a corresponding number of unusable blocks and a corresponding controller. Each controller may obtain a minimum number of blocks for supporting a predetermined storage characteristic. Each controller may calculate a respective number of spare blocks based on a respective number of unusable blocks, perform relocation for the respective data storage device based on the minimum number of blocks, and perform operations, which are not relocation, based on the minimum number of blocks and the respective number of spare blocks.

Claims (70)

1. A data storage apparatus, comprising:

a plurality of data storage devices, each data storage device having a same storage capacity, and each data storage device including a corresponding number of bad blocks; and

a plurality of controllers, each controller corresponding to a respective data storage device, and each controller configured to:

obtain a minimum number of blocks of the respective data storage device for supporting a predetermined storage characteristic;

calculate a respective number of spare blocks based on a respective number of bad blocks within the respective data storage device;

perform relocation for the respective data storage device based on the minimum number of blocks; and

perform operations, which are not relocation, for the respective data storage device, based on the minimum number of blocks and the respective number of spare blocks,

wherein each controller is configured to:

determine a respective number of illusory free blocks within the respective data storage device; and

in accordance with a determination that the respective number of illusory free blocks meets a respective threshold, trigger the relocation for the respective data storage device,

wherein:

the blocks of the respective data storage device for supporting the predetermined storage characteristic are configured to be used for data storage;

the illusory free blocks are configured to be used for data storage;

the spare blocks are configured to be used for data storage;

bad blocks are not usable for data storage;

the illusory free blocks exclude the spare blocks and bad blocks; and

the illusory free blocks are based on the blocks of the respective data storage device for supporting the predetermined storage characteristic.

2. The data storage apparatus of claim 1 , wherein the illusory free blocks within the respective data storage device include actual free blocks within the blocks of the respective data storage device for supporting the predetermined storage characteristic and exclude actual free blocks within the spare blocks of the respective data storage device.

3. The data storage apparatus of claim 1 ,

wherein each controller is configured to determine the respective number of illusory free blocks within the respective data storage device by subtracting the respective number of spare blocks within the respective data storage device from a respective number of actual free blocks within the respective data storage device, and

wherein the actual free blocks within the respective data storage device include actual free blocks within the blocks of the respective data storage device for supporting the predetermined storage characteristic and include actual free blocks within the spare blocks of the respective data storage device.

4. The data storage apparatus of claim 1 ,

wherein each controller is configured to perform the operations, which are not relocation, for the respective data storage device using actual free blocks within the respective data storage device, and

wherein the actual free blocks within the respective data storage device include actual free blocks within the blocks of the respective data storage device for supporting the predetermined storage characteristic and include actual free blocks within the spare blocks of the respective data storage device.

5. The data storage apparatus of claim 1 ,

wherein each controller is configured to determine the respective number of spare blocks within the respective data storage device by subtracting the minimum number of blocks of the respective data storage device and the respective number of bad blocks within the respective data storage device from a respective number of total blocks within the respective data storage device, and

wherein the respective number of total blocks within the respective data storage device is same as a respective number of total blocks within each of other data storage devices of the plurality of data storage devices.

6. The data storage apparatus of claim 1 , wherein the minimum number of blocks of the respective data storage device for supporting the predetermined storage characteristic is same as a minimum number of blocks of each of other data storage devices of the plurality of data storage devices for supporting the predetermined storage characteristic.

7. The data storage apparatus of claim 1 , wherein at least one data storage device of the plurality of data storage devices includes a different number of bad blocks when compared to another data storage device of the plurality of data storage devices.

8. The data storage apparatus of claim 1 , wherein the predetermined storage characteristic is storage capacity for each data storage device.

9. The data storage apparatus of claim 1 , wherein each data storage device has a same number of dies and is of a same type of memory.

10. The data storage apparatus of claim 1 , wherein the respective number of bad blocks within the respective data storage device corresponds to a number of bad blocks across all dies within the respective data storage device.

11. The data storage apparatus of claim 1 , further comprising:

a host interface for coupling the plurality of data storage devices to a host system;

wherein each data storage device is configured to store data corresponding to a same workload received from the host system.

12. A method implemented using one or more controllers for one or more data storage devices, the method comprising:

obtaining a minimum number of blocks of a respective data storage device of a plurality of data storage devices for supporting a predetermined storage characteristic, wherein each data storage device has a same storage capacity, and wherein each data storage device includes a corresponding number of bad blocks;

calculating a respective number of spare blocks based on a respective number of bad blocks within the respective data storage device;

performing relocation for the respective data storage device based on the minimum number of blocks; and

performing operations, which are not relocation, for the respective data storage device, based on the minimum number of blocks and the respective number of spare blocks,

wherein the method further comprises:

determining a respective number of illusory free blocks within the respective data storage device; and

in accordance with a determination that the respective number of illusory free blocks meets a respective threshold, triggering the relocation for the respective data storage device.

13. The method of claim 12 ,

wherein:

the blocks of the respective data storage device for supporting the predetermined storage characteristic are configured to be used for data storage;

the illusory free blocks are configured to be used for data storage;

the spare blocks are configured to be used for data storage;

bad blocks are not usable for data storage;

the illusory free blocks exclude the spare blocks and bad blocks; and

the illusory free blocks are based on the blocks of the respective data storage device for supporting the predetermined storage characteristic.

14. The method of claim 13 , wherein the illusory free blocks within the respective data storage device include actual free blocks within the blocks of the respective data storage device for supporting the predetermined storage characteristic and exclude actual free blocks within the spare blocks of the respective data storage device.

15. The method of claim 13 , further comprising:

determining the respective number of illusory free blocks within the respective data storage device by subtracting the respective number of spare blocks within the respective data storage device from a respective number of actual free blocks within the respective data storage device,

wherein the actual free blocks within the respective data storage device include actual free blocks within the blocks of the respective data storage device for supporting the predetermined storage characteristic and include actual free blocks within the spare blocks of the respective data storage device.

16. The method of claim 12 , further comprising:

performing the operations, which are not relocation, for the respective data storage device using actual free blocks within the respective data storage device, and

wherein the actual free blocks within the respective data storage device include actual free blocks within the blocks of the respective data storage device for supporting the predetermined storage characteristic and include actual free blocks within the spare blocks of the respective data storage device.

17. The method of claim 12 , further comprising:

determining the respective number of spare blocks within the respective data storage device by subtracting the minimum number of blocks of the respective data storage device and the respective number of bad blocks within the respective data storage device from a respective number of total blocks within the respective data storage device,

wherein the respective number of total blocks within the respective data storage device is same as a respective number of total blocks within each of other data storage devices of the plurality of data storage devices.

18. The method of claim 12 , wherein the minimum number of blocks of the respective data storage device for supporting the predetermined storage characteristic is same as a minimum number of blocks of each of other data storage devices of the plurality of data storage devices for supporting the predetermined storage characteristic.

19. A system, comprising:

means for obtaining a minimum number of blocks of a respective data storage device of a plurality of data storage devices for supporting a predetermined storage characteristic, wherein each data storage device has a same storage capacity, and wherein each data storage device includes a corresponding number of bad blocks;

means for calculating a respective number of spare blocks based on a respective number of bad blocks within the respective data storage device;

means for performing relocation for the respective data storage device based on the minimum number of blocks; and

means for performing operations, which are not relocation, for the respective data storage device, based on the minimum number of blocks and the respective number of spare blocks,

wherein the system further comprises:

means for determining a respective number of illusory free blocks within the respective data storage device; and

means for, in accordance with a determination that the respective number of illusory free blocks meets a respective threshold, triggering the relocation for the respective data storage device.

Assignments (8)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/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 - DDTL Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2023
From: KIM, KYOUNGIL; XIE, HONGMEI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064301/0589 →
Continuity (2)
Provisional Application 63444803 · Feb 10, 2023
Related Publication 20240272802A1 · Aug 15, 2024
References Cited (14)
US 10180797B2 · Grimsrud · 2019 [cited by applicant]
US 11194712B2 · Lee et al. · 2021 [cited by applicant]
US 11275678B2 · Park · 2022 [cited by examiner]
US 20040196707A1 · Yoon · 2004 [cited by examiner]
US 20080137501A1 · Ko · 2008 [cited by examiner]
US 20100235605A1 · Perry · 2010 [cited by examiner]
US 20110271043A1 · Segal · 2011 [cited by examiner]
US 20160232088A1 · Mohan · 2016 [cited by examiner]
US 20170213726A1 · Saly · 2017 [cited by examiner]
US 20180276123A1 · Matsudaira · 2018 [cited by applicant]
US 20210173558A1 · Kashyap · 2021 [cited by examiner]
US 20220083465A1 · Zhou et al. · 2022 [cited by applicant]
US 20220261342A1 · Yang · 2022 [cited by applicant]
US 20230325275A1 · Golvalkar · 2023 [cited by examiner]