IP Library Granted Patent US 12,541,455
Granted Patent B2
US 12,541,455 · App. 18/736,948 · Granted Feb 3, 2026

Data storage device and method for defining caching layers based on cache attributes

Inventors: Dinesh Kumar Agarwal (Bangalore, IN); Amit Sharma (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F12/0811
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,541,455
App. No.
18/736,948
Granted
Feb 3, 2026
Kind
B2
Abstract

A data storage device and method are disclosed for defining caching layers based on cache attributes. In one embodiment, a data storage device is provided comprising a non-volatile memory, a plurality of caches, and one or more processors. The one or more processors, individually or in combination, are configured to: receive a command from a host to read data from the non-volatile memory; select a cache from the plurality of caches based on at least one cache attribute other than speed; read the data from the non-volatile memory; and store the data in the selected cache. Other embodiments are provided.

Claims (37)

1 . A data storage device comprising:

a non-volatile memory;

a plurality of caches; and

one or more processors, individually or in combination, configured to:

dynamically define priority for each cache in the plurality of caches based on attributes of each cache, wherein the attributes comprise cache release time, cache arrival time, cache release rate, cache arbitration policy, and cache eviction ratio;

expose the attributes of each cache to a host;

receive, from the host, (i) a command to read data from the non-volatile memory and (ii) a selection of a cache from the plurality of caches to use for the command, wherein the selection is based on the attributes of each cache in the plurality of caches and an estimated finish time for the command but not on a speed of each cache;

read the data from the non-volatile memory; and

store the data in the selected cache.

2 . The data storage device of claim 1 , wherein the plurality of caches comprises four caches.

3 . The data storage device of claim 1 , wherein the plurality of caches comprises a static random-access memory.

4 . The data storage device of claim 1 , wherein the plurality of caches comprises a dynamic random-access memory.

5 . The data storage device of claim 1 , wherein the plurality of caches comprises a data latch in the non-volatile memory.

6 . The data storage device of claim 1 , wherein the non-volatile memory comprises a three-dimensional memory.

7 . A method comprising:

performing in a data storage device comprising a non-volatile memory and a plurality of caches:

dynamically defining priority for each cache in the plurality of caches based on attributes of each cache, wherein the attributes comprise cache release time, cache arrival time, cache release rate, cache arbitration policy, and cache eviction ratio;

exposing the attributes of each cache to a host;

receiving, from the host, (i) a command to read data from the non-volatile memory and (ii) a selection of a cache from the plurality of caches to use for the command, wherein the selection is based on the attributes of each cache in the plurality of caches and an estimated finish time for the command but not on a speed of each cache;

reading the data from the non-volatile memory; and

storing the data in the selected cache.

8 . The method of claim 7 , wherein the plurality of caches comprises a host memory buffer.

9 . The method of claim 7 , wherein the non-volatile memory comprises a three-dimensional memory.

10 . A data storage device comprising:

a non-volatile memory;

a plurality of caches; and

means for;

dynamically defining priority for each cache in the plurality of caches based on attributes of each cache, wherein the attributes comprise cache release time, cache arrival time, cache release rate, cache arbitration policy, and cache eviction ratio;

exposing the attributes of each cache to a host;

receiving, from the host, (i) a command to read data from the non-volatile memory and (ii) a selection of a cache from the plurality of caches to use for the command, wherein the selection is based on the attributes of each cache in the plurality of caches and an estimated finish time for the command but not on a speed of each cache;

reading the data from the non-volatile memory; and

storing the data in the selected cache.

11 . The data storage device of claim 1 , wherein the plurality of caches comprises a host memory buffer.

12 . The method of claim 7 , wherein the plurality of caches comprises four caches.

13 . The method of claim 7 , wherein the plurality of caches comprises a static random-access memory.

14 . The method of claim 7 , wherein the plurality of caches comprises a dynamic random-access memory.

15 . The method of claim 7 , wherein the plurality of caches comprises a data latch in the non-volatile memory.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2024
From: AGARWAL, DINESH KUMAR; SHARMA, AMIT
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 067657/0051 →
Continuity (1)
Related Publication 20250378029A1 · Dec 11, 2025
References Cited (25)
US 7434002B1 · Zedlewski · 2008 [cited by examiner]
US 7581064B1 · Zedlewski · 2009 [cited by examiner]
US 7802057B2 · Iyer · 2010 [cited by examiner]
US 8595439B1 · Koh · 2013 [cited by examiner]
US 9405476B1 · Joshi · 2016 [cited by examiner]
US 9483404B2 · Atkisson · 2016 [cited by examiner]
US 10073656B2 · Zhe Yang · 2018 [cited by examiner]
US 10642737B2 · Mola · 2020 [cited by examiner]
US 11138121B2 · Hagersten · 2021 [cited by examiner]
US 12067268B2 · Vishne · 2024 [cited by examiner]
US 20020053006A1 · Kawamoto · 2002 [cited by examiner]
US 20080104150A1 · Moore · 2008 [cited by examiner]
US 20090070527A1 · Tetrick · 2009 [cited by examiner]
US 20110022801A1 · Flynn · 2011 [cited by examiner]
US 20120210066A1 · Joshi · 2012 [cited by examiner]
US 20150113223A1 · Brown · 2015 [cited by examiner]
US 20160147666A1 · Li · 2016 [cited by examiner]
US 20170242623A1 · Jung · 2017 [cited by examiner]
US 20210112135A1 · Mahdian · 2021 [cited by examiner]
US 20210157739A1 · Gholkar · 2021 [cited by examiner]
US 20230400994A1 · Vishne · 2023 [cited by examiner]
US 20230409489A1 · Tran · 2023 [cited by examiner]
US 20230409589A1 · Field · 2023 [cited by examiner]
US 20240095177A1 · Chen · 2024 [cited by examiner]
Bruce Jacob, Spencer W. Ng, David T. Wang, Chapter 15—Memory System Design Analysis, Editor(s): Bruce Jacob, Spencer W. Ng, David T. Wang, Memory Systems, Morgan Kaufmann, 2008, pp. 541-597, ISBN 9780123797513, https://… [cited by examiner]