IP Library Granted Patent US 12,481,432
Granted Patent B1
US 12,481,432 · App. 18/825,264 · Granted Nov 25, 2025

Host and dual write method for avoiding data loss when writing to an external data storage device

Inventors: Dattatreya B. Nayak (Udupi, IN); Narendra Bayanaboina (Mydukur, IN); Nagaraj Dandigenahalli Rudrappa (Davangere, IN); Silky Mohanty (Bangalore, IN); Ramanathan Muthiah (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/0619G06F3/0655G06F3/067
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,481,432
App. No.
18/825,264
Granted
Nov 25, 2025
Kind
B1
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, the host can use a dual-write method in which a portion of the data is both sent to the external data storage device for storage and written in the host's internal non-volatile memory. That way, if the portion of the data sent to the external data storage device is lost, the portion of the data can be resent from the host's internal non-volatile memory.

Claims (44)

1 . In a host in communication with an external data storage device, a method comprising:

sending a portion of data generated by the host to the external data storage device for storage;

determining whether a data generation rate of the host is greater than a storage rate of the external data storage device; and

in response to determining that the data generation rate of the host is greater than the storage rate of the external data storage device:

storing, in a non-volatile memory of the host, a copy of the portion of the data sent to the external data storage device for storage;

determining whether the portion of the data was received by the external data storage device;

in response to determining that the portion of the data was not received by the external data storage device, sending the copy of the portion of the data to the external data storage device for storage; and

in response to determining that the portion of the data was received by the external data storage device, removing the copy of the portion of the data from the non-volatile memory of the host.

2 . The method of claim 1 , further comprising:

in response to determining that the data generation rate is not greater than the storage rate of the external data storage device, foregoing storing the copy of the portion of the data in the non-volatile memory of the host.

3 . The method of claim 1 , wherein determining whether the portion of the data was received by the external data storage device comprises determining whether an acknowledgment was received from the external data storage device.

4 . The method of claim 1 , wherein the storage rate of the external data storage device comprises an average storage rate.

5 . The method of claim 1 , wherein removing the copy of the portion of the data from the non-volatile memory of the host comprises trimming the copy of the portion of the data by invalidating an entry in a logical-to-physical address table associated with a logical address of the copy of the portion of the data.

6 . The method of claim 1 , further comprising flushing the non-volatile memory of the host to the external data storage device.

7 . The method of claim 1 , further comprising using a hash table to avoid duplicate writing of the portion of the data in the external data storage device.

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

9 . 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.

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

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

12 . A host comprising:

a non-volatile memory;

a first volatile memory;

a second volatile memory; and

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

store a portion of data generated by the host in the first volatile memory for transfer to an external data storage device for storage;

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

determine whether the portion of the data transferred to the external data storage device was dropped; and

in response to determining that the portion of the data transferred to the external data storage device was dropped, send, to the external data storage device for storage, the portion of data that is stored in the non-volatile memory.

13 . The host of claim 12 , wherein the one or more processors, individually or in combination, are further configured to store the portion of data generated by the host in the second volatile memory for transfer to the non-volatile memory in response to determining that a data generation rate of the host is greater than a storage rate of the external data storage device.

14 . The host of claim 12 , wherein the one or more processors, individually or in combination, are further configured to remove the portion of the data stored in the non-volatile memory in response to determining that the portion of the data transferred to the external data storage device was not dropped.

15 . The host of claim 12 , wherein the one or more processors, individually or in combination, are further configured to use a hash table to avoid duplicate writing of the portion of the data in the external data storage device.

16 . The host of claim 12 , wherein determining whether the portion of the data transferred to the external data storage device was dropped comprises determining whether an acknowledgment was received from the external data storage device.

17 . The host of claim 12 , wherein the data comprises streaming video.

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

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

20 . A host comprising:

a non-volatile memory;

a first volatile memory;

a second volatile memory; and

means for:

storing a portion of data generated by the host in the first volatile memory for transfer to an external data storage device for storage;

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

determining whether the portion of the data transferred to the external data storage device was dropped; and

in response to determining that the portion of the data transferred to the external data storage device was dropped, sending, to the external data storage device for storage, the portion of data that is stored 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 →
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: NAYAK, DATTATREYA B.; BAYANABOINA, NARENDRA; RUDRAPPA, NAGARAJ DANDIGENAHALLI; MOHANTY, SILKY; MUTHIAH, RAMANATHAN
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 068498/0001 →
References Cited (15)
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 11409672B2 · Zheng · 2022 [cited by examiner]
US 20100293321A1 · Weingarten · 2010 [cited by applicant]
US 20140006859A1 · Ryu · 2014 [cited by examiner]
US 20150280865A1 · Wood · 2015 [cited by examiner]
US 20160098213A1 · Franceschini et al. · 2016 [cited by applicant]
US 20210255803A1 · Kanno · 2021 [cited by examiner]
US 20220155999A1 · Sikarwar et al. · 2022 [cited by applicant]
US 20230153125A1 · Subramanian · 2023 [cited by examiner]