IP Library Granted Patent US 12,346,583
Granted Patent B2
US 12,346,583 · App. 17/721,117 · Granted Jul 1, 2025

Tracking data usage in storage devices

Inventors: Anamika Choudhary (Bangalore, IN); Lovish Singla (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/064G06F3/0607G06F3/065G06F3/0653G06F3/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,346,583
App. No.
17/721,117
Granted
Jul 1, 2025
Kind
B2
Abstract

Storage devices include a memory array comprised of a plurality of memory devices. These memory devices typically have a plurality of metadata associated with them in addition to the data stored within. This metadata may include a timestamp indicating when the last host command, such as a read or write command, was processed on each of the memory devices. Using this timestamp metadata, the storage device can classify data based on how long it has been since last processed. Once known, the storage device can process memory devices that have not been processed after a certain period of time. This processing can include avoiding wear leveling, transferring data to an external cloud service, or compressing data, among others. During processing, such as compaction, timestamps associated with the data stored in each memory device can be transferred or otherwise associated with any destination memory device, thereby preserving the generated data classifications.

Claims (53)

1. A device comprising:

a processor;

a memory array comprising:

a plurality of memory devices wherein the memory devices are configured into a plurality of memory blocks; and

a usage tracking logic configured to:

receive a host command from a host associated with one or more memory devices;

determine a plurality of memory devices required to process the received host command;

process the received host command;

generate a timestamp, wherein the timestamp corresponds to the time of completion of processing the received host command;

associate the timestamp with the determined plurality of memory devices;

store the timestamp as metadata; and

execute a compaction process on the plurality of memory devices, wherein the compaction process is configured to:

move data associated with the determined plurality of memory devices to a second plurality of memory devices;

determine the generated timestamps associated with each of the determined plurality of memory devices; and

associate the determined timestamps with the moved data within the second plurality of memory devices.

2. The device of claim 1 , wherein a data structure is configured to group the blocks into one or more lists associated with each classification.

3. The device of claim 1 , wherein the compaction process is executed in response to exceeding a predefined threshold.

4. The device of claim 3 , wherein the predefined threshold is associated with a number of blocks within one or more classifications.

5. The device of claim 3 , wherein the predefined threshold is associated with a percentage of blocks within one or more classifications.

6. The device of claim 3 , wherein the determination of beginning the compaction process occurs within the device.

7. The device of claim 3 , wherein the determination of beginning the compaction process occurs within the host and is received by the device.

8. A method, comprising:

receiving, via a host, a host command associated with one or more memory devices within a memory array configured within a storage device;

determining, through one or more processors associated with the storage device, a plurality of memory devices required to process the received host command;

processing the received host command;

generating from within the storage device, a timestamp, wherein the timestamp corresponds to the time of completion of processing the received host command;

associating the timestamp with the determined plurality of memory devices;

storing the timestamp as metadata;

transferring data associated with the plurality of memory devices to an external cloud-based service;

determining that a predetermined threshold based on the stored metadata has been exceeded; and

executing a compaction process on the plurality of memory devices, wherein the compaction process is configured to:

move data associated with the determined plurality of memory devices to a second plurality of memory devices;

determine the generated timestamps associated with each of the determined plurality of memory devices; and

associate the determined timestamps with the moved data within the second plurality of memory devices.

9. The method of claim 8 , wherein the predetermined threshold is associated with a percentage of used memory devices available within the memory array.

10. A device comprising:

a processor,

a memory array comprising:

a plurality of memory devices wherein the memory devices are configured into a plurality of memory blocks; and

a usage tracking logic configured to:

receive a host command from a host associated with one or more memory devices;

determine a plurality of memory devices required to process the received host command;

process the received host command;

generate a timestamp, wherein the timestamp corresponds to the time of completion of processing the received host command; and

associate the timestamp with each of the determined plurality of memory devices;

store the timestamp as metadata;

transfer, upon exceeding a predetermined threshold, the metadata to the host, wherein the predetermined threshold is associated with one or more elapses in time from the generated timestamp; and

execute a compaction process on the plurality of memory devices, wherein the compaction process is configured to:

move data associated with the determined plurality of memory devices to a second plurality of memory devices;

determine the generated timestamps associated with each of the determined plurality of memory devices; and

associate the determined timestamps with the moved data within the second plurality of memory devices.

11. The device of claim 10 , wherein the transfer is executed in response to one or more processes generated within the device.

12. The device of claim 10 , wherein the transfer is executed in response to a received host command.

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 LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2022
From: CHOUDHARY, ANAMIKA; SINGLA, LOVISH
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059604/0530 →
Continuity (1)
Related Publication 20230333761A1 · Oct 19, 2023
References Cited (9)
US 8849761B2 · Prahlad et al. · 2014 [cited by applicant]
US 20110307573A1 · Lingafelt · 2011 [cited by examiner]
US 20120317337A1 · Johar et al. · 2012 [cited by applicant]
US 20180373722A1 · Ulasen et al. · 2018 [cited by applicant]
US 20190095116A1 · Igahara · 2019 [cited by examiner]
US 20190179698A1 · Liu · 2019 [cited by examiner]
US 20220067106A1 · Saez · 2022 [cited by examiner]
Tan, B. et al., “Adaptive Data-Coldness Classification for Solid State Drives” Technical Disclosure Commons, Oct. 26, 2020, https://www.tdcommons.org/dpubs_series/3698. [cited by applicant]
Hiep, N.V. et al., Timestamp-based Hot/Cold Data Identification Scheme for Solid State Drives. In Proceedings of International Conference on Research in Adaptive and Convergent Systems. Honolulu, HI, USA, Oct. 9-12, 201… [cited by applicant]