IP Library Granted Patent US 12,608,317
Granted Patent B2
US 12,608,317 · App. 18/818,259 · Granted Apr 21, 2026

Controller memory buffer (CMB) as cache

Inventors: Amir Segev (Meiter, IL); Shay Benisty (Beer Sheva, IL)
Assignee: Sandisk Technologies, Inc.
G06F12/0862
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,608,317
App. No.
18/818,259
Granted
Apr 21, 2026
Kind
B2
Abstract

A controller memory buffer (CMB) is used by a host device for numerous purposes. One such purpose is to have data placed in CMB in response to a read command. The data is read from the memory device and placed in the CMB. However, for efficiency purposes, the data storage device may pre-fetch data. Pre-fetched data is stored in volatile memory that is distinct from CMB, but oftentimes in dynamic random access memory (DRAM), of which the CMB is a part. Rather than copying the data from DRAM and restoring the data in CMB, the data storage device can simply provide the DRAM address without moving the data to CMB, thus saving the step of copying data from DRAM to CMB.

Claims (47)

1 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

receive a read command from a host device, wherein the read command has a logical block address (LBA), and wherein the read command is to read data for the LBA from the memory device to a location in a controller memory buffer (CMB);

forward the LBA to a LBA to dynamic random access memory (DRAM) (L2D) module;

scan a list in the L2D module;

determine whether the LBA matches an entry in the list;

pre-fetch data for at least one LBA from the memory device and store the pre-fetched data in DRAM at a DRAM address;

inform the L2D module of the LBA and the DRAM address; and

receive a Physical region page (PRP) with the read command and send the PRP to the L2D module.

2 . The data storage device of claim 1 , wherein the controller is configured to:

return the LBA to a CMB manager upon determining that the LBA does not match an entry in the list; and

read the data from the memory device.

3 . The data storage device of claim 1 , wherein the controller is configured to determine that the LBA matches an entry on the list, and wherein the L2D module is configured to return a new address to a CMB manager.

4 . The data storage device of claim 3 , wherein the new address corresponds to a location in DRAM.

5 . The data storage device of claim 4 , wherein the CMB is disposed in the DRAM, and wherein the new address is not in the CMB.

6 . The data storage device of claim 1 , wherein the list contains addresses pre-fetched by the controller from the memory device.

7 . The data storage device of claim 1 , wherein the L2D contains LBA to PRP information and LBA to DRAM address information.

8 . The data storage device of claim 1 , wherein the controller is configured to dynamically remap the PRP to the DRAM address.

9 . The data storage device of claim 1 , wherein the L2D module is configured to maintain a list of LBA to physical region page (PRP) relationships and LBA to DRAM addresses.

10 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

pre-fetch data from the memory device prior to receiving a read command to read the data from the memory device, wherein the pre-fetched data has a logical block address (LBA);

store the pre-fetched data in dynamic random access memory (DRAM) at a DRAM address;

inform a LBA to DRAM (L2D) module of the LBA for the pre-fetched data and the DRAM address;

receive the read command, wherein the read command is to read the data from the memory device to a controller memory buffer (CMB);

access the data from the DRAM:

receive a physical region page (PRP) for the read command; and

send the PRP to the L2D module.

11 . The data storage device of claim 10 , wherein the controller is configured to search a table in the L2D module for a match for the LBA.

12 . The data storage device of claim 10 , wherein the controller is configured to dynamically remap the PRP to the DRAM address.

13 . The data storage device of claim 10 , wherein the controller is configured to not copy the data from the DRAM to the CMB upon receipt of the read command.

14 . The data storage device of claim 10 , wherein the L2D module is configured to maintain a list of LBA to physical region page (PRP) relationships and LBA to DRAM addresses.

15 . The data storage device of claim 10 , wherein the CMB is disposed in the DRAM.

16 . The data storage device of claim 10 , wherein the L2D contains LBA to PRP information and LBA to DRAM address information.

17 . A data storage device, comprising:

means to store data; and

a controller coupled to the means to store data, wherein the controller is configured to:

dynamically remap a range from a first portion of the means to store data to a second portion of the means to store data, wherein the second portion of the means to store data is a controller memory buffer (CMB);

maintain a module to hold lists of logical block address (LBA) to physical region page (PRP) relationships and LBA to the first portion relationships of data that has been pre-fetched;

receive a read command from a host device, wherein the read command has a logical block address (LBA);

forward the LBA to a LBA to dynamic random access memory (DRAM) (L2D) module; and

receive a physical region page (PRP) with the read command and send the PRP to the L2D module.

18 . The data storage device of claim 17 , wherein functionality of the module is by use of a content addressable memory (CAM) that is distinct from the means to store data.

19 . The data storage device of claim 17 , wherein the module is coupled to a CMB management module.

20 . The data storage device of claim 17 , wherein the L2D contains LBA to PRP information and LBA to DRAM address information.

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 →
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0486 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2024
From: SEGEV, AMIR; BENISTY, SHAY
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 068974/0142 →
Continuity (1)
Related Publication 20260064596A1 · Mar 5, 2026
References Cited (11)
US 10503635B2 · Kan et al. · 2019 [cited by applicant]
US 10564872B2 · Benisty · 2020 [cited by applicant]
US 10860492B2 · Du et al. · 2020 [cited by applicant]
US 11733920B2 · Segev et al. · 2023 [cited by applicant]
US 11893258B2 · Kabra et al. · 2024 [cited by applicant]
US 20160011964A1 · Rostoker · 2016 [cited by examiner]
US 20180081569A1 · Kan · 2018 [cited by examiner]
US 20190317901A1 · Kachare · 2019 [cited by examiner]
US 20210141559A1 · Kim · 2021 [cited by examiner]
US 20220147440A1 · Benisty · 2022 [cited by examiner]
US 20250069683A1 · Vu · 2025 [cited by examiner]