IP Library Granted Patent US 12,572,465
Granted Patent B2
US 12,572,465 · App. 18/825,319 · Granted Mar 10, 2026

Data storage device and method for buffer occupancy-based data placement to avoid video loss

Inventors: Nagaraj Dandigenahalli Rudrappa (Davangere, IN); Narendra Bayanaboina (Mydukur, IN); Dattatreya B. Nayak (Udupi, IN); Silky Mohanty (Bangalore, IN); Ramanathan Muthiah (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F12/0246G06F3/0613G06F3/0656G06F3/0679G06F2212/7203
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,572,465
App. No.
18/825,319
Granted
Mar 10, 2026
Kind
B2
Abstract

A host may not have a large enough internal non-volatile memory to store generated data, such as video. In such situations, the host can store the data in an external data storage device, such as an external solid-state drive (SSD). However, if the storage rate of the external data storage device drops below the rate at which the host is generating and sending the data to the external data storage device, data loss can occur. To help avoid this situation, when a low storage rate is detected, the host can route a portion of data generated by the host to a non-volatile memory in the host for temporary storage and later transfer that data to the external data storage device when the storage rate increases.

Claims (50)

1 . In a host in communication with an external data storage device, wherein the host comprises a first volatile memory, a second volatile memory, and a non-volatile memory, a method comprising:

determining whether a storage rate of the external data storage device is below a threshold;

in response to determining that the storage rate of the external data storage device is not below the threshold, sending a portion of data generated by the host to the first volatile memory for transfer to the external data storage device for storage; and

in response to determining that the storage rate of the external data storage device is below the threshold:

sending the portion of the data generated by the host to the second volatile memory for transfer to the non-volatile memory for storage;

determining whether the storage rate of the external data storage device has increased above the threshold; and

in response to determining that the storage rate of the external data storage device has increased above the threshold, sending the portion of the data stored in the non-volatile memory to the first volatile memory for transfer to the external data storage device for storage.

2 . The method of claim 1 , wherein determining whether the storage rate of the external data storage device is below the threshold comprises determining whether an available capacity of the first volatile memory is below a second threshold.

3 . The method of claim 1 , further comprising formatting the portion of the data to align with a granularity of the non-volatile memory and a non-volatile memory of the external data storage device.

4 . The method of claim 1 , wherein the portion of the data stored in the non-volatile memory is sent to the first volatile memory during idle time.

5 . The method of claim 1 , wherein the portion of the data stored in the non-volatile memory is sent to the first volatile memory while the host is generating other another portion of the data.

6 . The method of claim 1 , further comprising marking another portion of the data transferred to the external data storage device for storage as incomplete until the portion of the data stored in the non-volatile memory is transferred to the external data storage device.

7 . The method of claim 1 , further comprising interleaving the portion of the data stored in the non-volatile memory with another portion of the data generated by the host.

8 . The method of claim 1 , wherein the data comprises streamed video.

9 . The method of claim 1 , further comprising:

receiving information from the external data storage device regarding the external data storage device's sustainable write throughput; and

calibrating operation of the host based on the sustainable write throughput.

10 . The method of claim 9 , wherein calibrating operation of the host comprises reducing a generation rate of the data based on the sustainable write throughput.

11 . The method of claim 1 , wherein a capacity of the non-volatile memory of the host is insufficient to store all of the data generated by the host.

12 . The method of claim 1 , wherein the external data storage device comprises an external solid-state drive (SSD).

13 . The method of claim 1 , wherein a memory of the external data storage device comprises a three-dimensional memory.

14 . A host comprising:

a non-volatile memory;

a primary buffer;

a secondary buffer; and

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

determine whether an available capacity of the primary buffer is below a threshold;

in response to determining that the available capacity of the primary buffer is not below the threshold, send a portion of data generated by the host to the primary buffer for transfer to an external data storage device for storage; and

in response to determining that the available capacity of the primary buffer is below the threshold:

send the portion of the data generated by the host to the secondary buffer for transfer to the non-volatile memory for storage;

determine whether the available capacity of the primary buffer is above the threshold; and

in response to determining that the available capacity of the primary buffer is above the threshold, send the portion of the data stored in the non-volatile memory to the primary buffer for transfer to the external data storage device for storage.

15 . The host of claim 14 , wherein the one or more processors, individually or in combination, are further configured to format the portion of the data to align with a granularity of the non-volatile memory and a non-volatile memory of the external data storage device.

16 . The host of claim 14 , wherein the one or more processors, individually or in combination, are further configured to mark another portion of the data transferred to the external data storage device for storage as incomplete until the portion of the data stored in the non-volatile memory is transferred to the external data storage device for storage.

17 . The host of claim 14 , wherein the one or more processors, individually or in combination, are further configured to interleave the portion of the data stored in the non-volatile memory with another portion of the data generated by the host.

18 . The host of claim 14 , wherein the data comprises streamed video.

19 . The host of claim 14 , wherein the one or more processors, individually or in combination, are further configured to:

receive information from the external data storage device regarding the external data storage device's sustainable write throughput; and

reduce a generation rate of the data based on the sustainable write throughput.

20 . A host comprising:

a non-volatile memory;

a primary buffer;

a secondary buffer; and

means for:

determining whether an available capacity of the primary buffer is below a threshold;

in response to determining that the available capacity of the primary buffer is not below the threshold, sending a portion of data generated by the host to the primary buffer for transfer to an external data storage device for storage; and

in response to determining that the available capacity of the primary buffer is below the threshold:

sending the portion of the data generated by the host to the secondary buffer for transfer to the non-volatile memory for storage;

determining whether the available capacity of the primary buffer is above the threshold; and

in response to determining that the available capacity of the primary buffer is above the threshold, sending the portion of the data stored in the non-volatile memory to the primary buffer for transfer to the external data storage device for storage.

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 Sep 5, 2024
From: RUDRAPPA, NAGARAJ DANDIGENAHALLI; BAYANABOINA, NARENDRA; NAYAK, DATTATREYA B.; MOHANTY, SILKY; MUTHIAH, RAMANATHAN
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 068498/0072 →
Continuity (1)
Related Publication 20260064583A1 · Mar 5, 2026
References Cited (18)
US 7849365B2 · Herman · 2010 [cited by applicant]
US 8544424B2 · Chang et al. · 2013 [cited by applicant]
US 8775480B2 · Carson et al. · 2014 [cited by applicant]
US 9891847B2 · Ravimohan et al. · 2018 [cited by applicant]
US 9996457B2 · Post et al. · 2018 [cited by applicant]
US 10153046B1 · Agarwal et al. · 2018 [cited by applicant]
US 11036407B1 · Tikoo et al. · 2021 [cited by applicant]
US 20100293321A1 · Weingarten · 2010 [cited by applicant]
US 20140006859A1 · Ryu · 2014 [cited by applicant]
US 20150280865A1 · Wood · 2015 [cited by applicant]
US 20160098213A1 · Franceschini et al. · 2016 [cited by applicant]
US 20190393888A1 · Bergmann · 2019 [cited by examiner]
US 20210255803A1 · Kanno · 2021 [cited by applicant]
US 20220096054A1 · Vignon · 2022 [cited by examiner]
US 20220155999A1 · Sikarwar et al. · 2022 [cited by applicant]
US 20230153125A1 · Subramanian · 2023 [cited by applicant]
U.S. Appl. No. 11/409,672 B2, filed Aug. 2022, Zheng. [cited by applicant]
Non-final Office Action mailed Aug. 22, 2025 for U.S. Appl. No. 18/825,264. [cited by applicant]