IP Library › Granted Patent US 12,366,957
Granted Patent B2
US 12,366,957 · App. 18/351,463 · Granted Jul 22, 2025

Retrimming removable storage device using host system

Inventors: Eran Erez (Bothell, WA); Joseph R. Meza (Bernallio, NM); Dylan B. Fairchild (Mission Viejo, CA)
Assignee: Sandisk Technologies, Inc.
G06F3/0607G06F3/0604G06F3/0622G06F3/0631G06F3/0644G06F3/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,366,957
App. No.
18/351,463
Filed
Jul 12, 2023
Granted
Jul 22, 2025
Kind
B2
Examiner
YU, JAE UN
Art Unit
2138
USPC
711/154
Abstract

A host system includes an interface for coupling the host system to a data storage device. The host system also includes one or more processors, and memory storing one or more programs for execution by the one or more processors. The one or more programs include instructions for: determining if a retrim is needed for the data storage device; and in accordance with a determination that the retrim is needed: identifying a time to initiate a new trim on the data storage device; and causing the new trim on the data storage device at the time identified.

Claims (62)

1. A host system, comprising:

an interface for coupling the host system to a data storage device;

one or more processors; and

memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions for:

determining if a retrim is needed for the data storage device;

in accordance with a determination that the retrim is needed:

identifying a time to initiate a new trim on the data storage device; and

causing the new trim on the data storage device at the time identified;

identifying the time to initiate the new trim by notifying the data storage device about the new trim; and

waiting for a predetermined activity level on the data storage device.

2. The host system of claim 1 , wherein the one or more programs further include instructions for determining if the retrim is needed based on timestamp attributes for prior trims on the data storage device.

3. The host system of claim 2 , wherein the timestamp attributes include at least one of data units written, a power cycle count, power on hours, and a date and time for the prior trims.

4. The host system of claim 2 , wherein the one or more programs further include instructions for determining if the retrim is needed based on the timestamp attributes by identifying a condition selected from the group consisting of:

a retrim issued less than a predetermined time in the past;

a retrim issued less than a predetermined number of power cycles in the past;

a retrim issued less than a predetermined number of power ons in the past;

a retrim issued less than a predetermined percentage written storage capacity; and

device namespace utilization is within less than a predetermined percentage.

5. The host system of claim 1 , wherein the one or more programs further include instructions for registering the data storage device when the data storage device is plugged in.

6. The host system of claim 5 , wherein the one or more programs include instructions for determining if the retrim is needed based on whether the data storage device is a newly registered device with less than a predetermined total written storage capacity.

7. The host system of claim 1 , wherein the one or more programs further include instructions for determining if the retrim is needed based on comparing a predetermined free space for the data storage device and free space information obtained from the data storage device.

8. The host system of claim 1 , wherein the one or more programs further include instructions for identifying the predetermined activity level based on if a change in rate of data transferred to the data storage device over a predetermined time period is below a predetermined rate.

9. The host system of claim 8 , wherein the one or more programs further include instructions for adjusting at least one of the predetermined rate and the predetermined time period.

10. The host system of claim 1 , wherein the one or more programs further include instructions for:

in accordance with a determination that a retrim service is supported, causing the new trim on the data storage device at the time identified by starting the retrim service.

11. The host system of claim 1 , wherein the one or more programs further include instructions for:

in accordance with a determination that a retrim service is not supported:

obtaining exclusive access to the data storage device;

parsing metadata in a file allocation table to determine unused clusters;

for a first predetermined time period, issuing a trim operation to trim untrimmed clusters of the unused clusters; and

releasing the exclusive access to the data storage device.

12. The host system of claim 11 , wherein the one or more programs further include instructions for:

in accordance with a determination that a retrim service is not supported:

updating a trimmed clusters table for storing information related to trimmed clusters; and

for subsequent trim operations, using the trimmed clusters table instead of or in addition to using the file allocation table to determine the unused clusters.

13. The host system of claim 11 , wherein the one or more programs further include instructions for:

in accordance with a determination that a retrim service is not supported:

waiting for a second predetermined time period; and

repeating using a trimmed clusters table instead of or in addition to using the file allocation table to determine the unused clusters, and issuing the trim operation for the first predetermined time period, for remaining untrimmed unused clusters.

14. The host system of claim 11 , wherein the one or more programs further include instructions for:

parsing, using a parser, the file allocation table for a file that is marked as deleted to identify clusters allocated for the deleted file;

converting the clusters allocated to a list of logical block addresses; and

using the list of logical block addresses for the trim operation to trim clusters corresponding to the deleted file.

15. The host system of claim 14 , wherein the one or more programs further include instructions for:

modifying the file allocation table to indicate to the parser that logical block addresses in the list are being trimmed for the deleted file.

16. The host system of claim 11 , wherein the one or more programs further include instructions for:

parsing the file allocation table, using a parser, to read bytes of an allocation bitmap to identify the unused clusters;

converting the unused clusters to a list of logical block addresses; and

using the list of logical block addresses for the trim operation to trim clusters corresponding to the unused clusters.

17. The host system of claim 1 , wherein the data storage device is a removable storage device that is formatted with an extensible file allocation table file system.

18. A method, comprising:

determining by a host system, whether a retrim is needed for a data storage device; and

in accordance with a determination that the retrim is needed:

identifying a time to initiate a new trim on the data storage device;

causing the new trim on the data storage device at the time identified;

identifying the time to initiate the new trim by notifying the data storage device about the new trim; and

waiting for a predetermined activity level on the data storage device.

19. A system, comprising:

means for determining by a host system whether a retrim is needed for a data storage device;

means for, in accordance with a determination that the retrim is needed, identifying a time to initiate a new trim on the data storage device;

means for, in accordance with a determination that the retrim is needed, causing the new trim on the data storage device at the time identified; and

means for, in accordance with a determination that a retrim service is not supported, parsing metadata in a file allocation table to determine unused clusters, and issuing a trim operation to trim untrimmed clusters of the unused clusters.

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 13, 2023
From: EREZ, ERAN; MEZA, JOSEPH R.; FAIRCHILD, DYLAN B.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064250/0896 →
Continuity (3)
Continuation In Part 17901157 · Sep 1, 2022
Provisional Application 63426340 · Nov 17, 2022
Related Publication 20240078011A1 · Mar 7, 2024
References Cited (13)
US 9535628B2 · Zaltsman et al. · 2017 [cited by applicant]
US 9727570B2 · Post et al. · 2017 [cited by applicant]
US 10089348B2 · Park et al. · 2018 [cited by applicant]
US 11048662B2 · Kim et al. · 2021 [cited by applicant]
US 11232022B2 · Jeong et al. · 2022 [cited by applicant]
US 20070067593A1 · Satoyama · 2007 [cited by examiner]
US 20150205717A1 · Lin · 2015 [cited by examiner]
US 20150234603A1 · Kitagawa et al. · 2015 [cited by applicant]
US 20170322727A1 · Yeh · 2017 [cited by applicant]
US 20190377512A1 · Hodes et al. · 2019 [cited by applicant]
US 20200310696A1 · Eliash et al. · 2020 [cited by applicant]
US 20210318821A1 · Sato · 2021 [cited by applicant]
CN 111639008A · 2020 [cited by applicant]