IP Library Granted Patent US 12,561,065
Granted Patent B2
US 12,561,065 · App. 18/736,861 · Granted Feb 24, 2026

Providing endurance to solid state device storage via querying and garbage collection

Inventors: Lior Kamran (Richon LeZion, IL); Amitai Alkalay (Kadima, IL); Steven A. Morley (Mendon, MA)
Assignee: Dell Products L.P.
G06F3/0616G06F3/0659G06F3/0679
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,561,065
App. No.
18/736,861
Granted
Feb 24, 2026
Kind
B2
Abstract

A technique provides endurance to solid state device (SSD) storage. Such a technique involves querying the SSD storage for locations which are about to be refreshed by the SSD storage. Such a technique further involves identifying storage objects that include the locations which are about to be refreshed in response to querying the SSD storage. Such a technique further involves, prior to the locations which are about to be refreshed being refreshed by the SSD storage, garbage collecting at least some of the identified storage objects to increase endurance of the SSD storage.

Claims (80)

1 . A method of providing endurance to solid state device (SSD) storage, the method comprising:

querying the SSD storage for locations which are about to be refreshed by the SSD storage;

identifying storage objects that include the locations which are about to be refreshed in response to querying the SSD storage; and

prior to the locations which are about to be refreshed being refreshed by the SSD storage, garbage collecting at least some of the identified storage objects to increase endurance of the SSD storage;

wherein querying the SSD storage includes:

sending a query command to a SSD which forms at least some of the SSD storage, and

receiving a set of addresses from the SSD in response to sending the query command.

2 . The method of claim 1 wherein sending the query command to the SSD includes:

providing, as part of the query command, a time parameter identifying an amount of time.

3 . The method of claim 2 wherein receiving the set of addresses from the SSD includes:

acquiring, as the set of addresses from the SSD, a set of logical block addresses (LBAs) which the SSD maps to a set of physical blocks that are scheduled to be refreshed via SSD internal garbage collection within the amount of time identified by the time parameter.

4 . The method of claim 1 wherein the SSD storage includes SSDs;

wherein the storage objects are physical large blocks (PLBs) formed by segments of the SSDs;

wherein a table descriptor table includes PLB descriptors corresponding to the PLBs formed by the segments of the SSDs; and

wherein identifying the storage objects includes:

translating the locations which are about to be refreshed to PLBs which include the locations which are about to be refreshed, and

updating particular PLB descriptors of the PLB descriptor table with upcoming refresh times in response to querying the SSD storage, the particular PLB descriptors corresponding to the PLBs which include the locations which are about to be refreshed.

5 . The method of claim 4 wherein identifying the storage objects further includes:

after the particular PLB descriptors of the PLB descriptor table are updated, computing refresh scores for the PLB descriptors of the PLB descriptor table based on the upcoming refresh times.

6 . The method of claim 5 wherein identifying the storage objects further includes:

after the refresh scores for the PLB descriptors of the PLB descriptor table are computed, queuing a set of PLBs for garbage collection based on the refresh scores for the PLB descriptors.

7 . The method of claim 1 wherein the SSD storage includes SSDs;

wherein the storage objects are physical large blocks (PLBs) formed by segments of the SSDs;

wherein garbage collecting at least some of the identified storage objects includes:

performing system-level garbage collection on PLBs which include the locations which are about to be refreshed.

8 . The method of claim 7 wherein the SSDs include mapped segments which are scheduled to be refreshed and unmapped segments where are not scheduled to be refreshed; and

wherein performing system-level garbage collection on the PLBs includes:

reading data from at least some of the mapped segments which are scheduled to be refreshed, and

writing the data to at least some of the unmapped segments which are not scheduled to be refreshed.

9 . The method of claim 8 wherein reading the data from at least some of the mapped segments which are scheduled to be refreshed includes:

reading the data from a first number of SSD locations; and

wherein writing the data to at least some of the unmapped segments which are not scheduled to be refreshed includes:

writing the data to a second number of SSD locations, the second number being less than the first number.

10 . The method of claim 7 wherein the SSDs include mapped segments which are scheduled to be refreshed; and

wherein performing system-level garbage collection on the PLBs includes:

reading data from at least some of the mapped segments which are scheduled to be refreshed, the at least some of the mapped segments being scheduled to be refreshed at an upcoming refresh time, and the data being read from the at least some of the mapped segments prior to the upcoming refresh time.

11 . The method of claim 10 , further comprising:

prior to the upcoming refresh time, sending unmap commands to the SSDs to prevent the at least some of the mapped segments from being refreshed at the upcoming refresh time.

12 . The method of claim 1 wherein garbage collecting at least some of the identified storage objects includes:

based on refresh time information obtained in response to querying the SSD storage, generating refresh scores that correspond to the identified storage objects.

13 . The method of claim 12 wherein a system-level garbage collection service is constructed and arranged to perform system-level garbage collection on storage objects based on storage object identifiers residing in a set of queues;

wherein the system-level garbage collection service is currently in an active state; and

wherein garbage collecting at least some of the identified storage objects further includes:

in response to particular refresh scores corresponding to particular storage objects being lower than a predefined refresh score threshold, placing storage object identifiers corresponding to the particular storage objects in the set of queues to direct the system-level garbage collection service to garbage collect the particular storage objects based on the storage object identifiers placed in the set of queues.

14 . The method of claim 12 wherein a system-level garbage collection service is constructed and arranged to perform system-level garbage collection on storage objects based on storage object identifiers residing in a set of queues;

wherein the system-level garbage collection service is currently in an idle state; and

wherein garbage collecting at least some of the identified storage objects further includes:

in response to particular refresh scores corresponding to particular storage objects being lower than a predefined refresh score threshold, placing storage object identifiers corresponding to the particular storage objects in the set of queues and transitioning the system-level garbage collection service from the idle state to an active state to direct the system-level garbage collection service to garbage collect the particular storage objects based on the storage object identifiers placed in the set of queues.

15 . Data storage equipment, comprising:

memory; and

control circuitry coupled to the memory, the memory storing instructions which, when carried out by the control circuitry, cause the control circuitry to perform a method of:

querying solid state device (SSD) storage for locations which are about to be refreshed by the SSD storage;

identifying storage objects that include the locations which are about to be refreshed in response to querying the SSD storage; and

prior to the locations which are about to be refreshed being refreshed by the SSD storage, garbage collecting at least some of the identified storage objects to increase endurance of the SSD storage;

wherein querying the SSD storage includes:

sending a query command to a SSD which forms at least some of the SSD storage, and

receiving a set of addresses from the SSD in response to sending the query command.

16 . The data storage equipment of claim 15 wherein the SSD storage includes SSDs;

wherein the storage objects are physical large blocks (PLBs) formed by segments of the SSDs;

wherein a table descriptor table includes PLB descriptors corresponding to the PLBs formed by the segments of the SSDs; and

wherein identifying the storage objects includes:

translating the locations which are about to be refreshed to PLBs which include the locations which are about to be refreshed, and

updating particular PLB descriptors of the PLB descriptor table with upcoming refresh times in response to querying the SSD storage, the particular PLB descriptors corresponding to the PLBs which include the locations which are about to be refreshed.

17 . The data storage equipment of claim 15 wherein garbage collecting at least some of the identified storage objects includes:

based on refresh time information obtained in response to querying the SSD storage, generating refresh scores that correspond to the identified storage objects.

18 . A computer program product having a non-transitory computer readable medium which stores a set of instructions to provide endurance to solid state device (SSD) storage; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

querying the SSD storage for locations which are about to be refreshed by the SSD storage;

identifying storage objects that include the locations which are about to be refreshed in response to querying the SSD storage; and

prior to the locations which are about to be refreshed being refreshed by the SSD storage, garbage collecting at least some of the identified storage objects to increase endurance of the SSD storage;

wherein garbage collecting at least some of the identified storage objects includes:

based on refresh time information obtained in response to querying the SSD storage, generating refresh scores that correspond to the identified storage objects.

19 . The computer program product of claim 18 wherein querying the SSD storage includes:

sending a query command to a SSD which forms at least some of the SSD storage, and

receiving a set of addresses from the SSD in response to sending the query command.

20 . The computer program product of claim 18 wherein the SSD storage includes SSDs;

wherein the storage objects are physical large blocks (PLBs) formed by segments of the SSDs;

wherein a table descriptor table includes PLB descriptors corresponding to the PLBs formed by the segments of the SSDs; and

wherein identifying the storage objects includes:

translating the locations which are about to be refreshed to PLBs which include the locations which are about to be refreshed, and

updating particular PLB descriptors of the PLB descriptor table with upcoming refresh times in response to querying the SSD storage, the particular PLB descriptors corresponding to the PLBs which include the locations which are about to be refreshed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2024
From: KAMRAN, LIOR; ALKALAY, AMITAI; MORLEY, STEVEN A.
To: DELL PRODUCTS L.P.
Reel/Frame 067814/0852 →
Continuity (1)
Related Publication 20250377804A1 · Dec 11, 2025
References Cited (9)
US 10922234B2 · Li · 2021 [cited by applicant]
US 11042307B1 · Li · 2021 [cited by applicant]
US 11126561B2 · Li · 2021 [cited by applicant]
US 20180373428A1 · Kan et al. · 2018 [cited by applicant]
US 20210374056A1 · Malladi et al. · 2021 [cited by applicant]
US 20220121563A1 · Kamran et al. · 2022 [cited by applicant]
US 20230236762A1 · Vaghasiya · 2023 [cited by examiner]
US 20240134799A1 · Shatsky et al. · 2024 [cited by applicant]
US 20240354015A1 · Shatsky et al. · 2024 [cited by applicant]