IP Library Granted Patent US 12,608,307
Granted Patent B2
US 12,608,307 · App. 18/736,977 · Granted Apr 21, 2026

Data storage device and method for writing updates to a host memory buffer using assistance from a host

Inventors: Dinesh Kumar Agarwal (Bangalore, IN); Amit Sharma (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F12/0246G06F3/0613G06F3/0655G06F3/0679G06F13/28G06F2212/7201G06F2212/7203G06F2213/0026
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,307
App. No.
18/736,977
Granted
Apr 21, 2026
Kind
B2
Abstract

A data storage device and method are disclosed for writing updates to a host memory buffer using assistance from a host. In one embodiment, a data storage device is provided comprising a memory and one or more processors. The one or more processors, individually or in combination, are configured to: write data in a first location in the host memory buffer, wherein the first location is allocated for exclusive use by the data storage device; and write a plurality of updates to the data in a second location in the host memory buffer using one-way traffic on a bus between the data storage device and the host, wherein the second location is allocated for host memory buffer updates. The host is configured to copy the plurality of updates from the second location to the first location. Other embodiments are provided.

Claims (28)

1 . A method comprising:

performing in a host comprising a host memory buffer for use by a data storage device:

sending, to the data storage device, a descriptor list identifying locations in the host memory buffer that are allocated for exclusive use by the data storage device, wherein some of the locations are allocated for host memory buffer updates;

receiving, from the data storage device, a plurality of data to be written in locations in the host memory buffer that are allocated for exclusive use by the data storage device but not allocated for host memory buffer updates;

receiving, from the data storage device, a direct memory access (DMA) burst comprising an accumulated plurality of updates to the plurality of data and error correction code for the accumulated plurality of updates to be written in the locations in the host memory buffer that are allocated for host memory buffer updates;

performing a common error correction code check on the accumulated plurality of updates using the generated error correction code; and

copying each update of the plurality of accumulated updates from its location in the host memory buffer to the location in the host memory buffer of the respective data of the plurality of data being updated using a one-by-one host RAM-to-RAM copy operation.

2 . A data storage device comprising:

a memory; and

means for:

receiving, from a host, a descriptor list identifying locations in a host memory buffer in the host that are allocated for exclusive use by the data storage device, wherein some of the locations are allocated for host memory buffer updates;

writing a plurality of data in a locations in the host memory buffer in the host that are allocated for exclusive use by the data storage device but not allocated for host memory buffer updates;

accumulating a plurality of updates to the plurality of data;

generating error correction code for the accumulated plurality of updates; and

writing the accumulated plurality of updates and the generated error correction code using a direct memory access (DMA) burst on a bus between the data storage device and the host to the locations in the host memory buffer that are allocated for host memory buffer updates;

wherein the host is configured to copy each update of the plurality of accumulated updates from its location in the host memory buffer to the location in the host memory buffer of the respective data of the plurality of data being updated using a one-by-one host RAM-to-RAM copy operation after a common error correction code check is performed on the accumulated plurality of updates using the generated error correction code.

3 . A data storage device comprising:

a memory; and

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

receive, from a host, a descriptor list identifying locations in a host memory buffer in the host that are allocated for exclusive use by the data storage device, wherein some of the locations are allocated for host memory buffer updates;

write a plurality of data in locations in the host memory buffer in the host that are allocated for exclusive use by the data storage device but not allocated for host memory buffer updates;

accumulate a plurality of updates to the plurality of data;

generate error correction code for the accumulated plurality of updates; and

write the accumulated plurality of updates and the generated error correction code using a direct memory access (DMA) burst on a bus between the data storage device and the host to the locations in the host memory buffer that are is allocated for host memory buffer updates;

wherein the host is configured to copy each update of the plurality of accumulated updates from its location in the host memory buffer to the location in the host memory buffer of the respective data of the plurality of data being updated using a one-by-one host RAM-to-RAM copy operation after a common error correction code check is performed on the accumulated plurality of updates using the generated error correction code.

4 . The data storage device of claim 3 , wherein each update of the plurality of updates comprises four bytes.

5 . The data storage device of claim 3 , wherein the plurality of updates is sent to the host without aligning the plurality of updates with an error correction code (ECC) packet.

6 . The data storage device of claim 3 , wherein the memory comprises a three-dimensional 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/0033 →
Continuity (1)
Related Publication 20250378020A1 · Dec 11, 2025
References Cited (17)
US 9977612B1 · Lo · 2018 [cited by examiner]
US 10007433B2 · Hahn · 2018 [cited by applicant]
US 10268584B2 · Hahn · 2019 [cited by applicant]
US 10521118B2 · Benisty et al. · 2019 [cited by applicant]
US 10642496B2 · Benisty et al. · 2020 [cited by applicant]
US 10929285B2 · R et al. · 2021 [cited by applicant]
US 11604735B1 · Segev · 2023 [cited by examiner]
US 11698751B2 · Agarwal · 2023 [cited by examiner]
US 20140337560A1 · Chun · 2014 [cited by examiner]
US 20200151055A1 · Eom · 2020 [cited by examiner]
US 20220391132A1 · Agarwal · 2022 [cited by examiner]
US 20230129363A1 · Wei · 2023 [cited by examiner]
US 20230153026A1 · Lee · 2023 [cited by examiner]
US 20230153027A1 · Hahn · 2023 [cited by examiner]
US 20230418760A1 · Hara · 2023 [cited by examiner]
US 20250021478A1 · Garg · 2025 [cited by examiner]
Vadhiraj Sankaranarayanan. “Error Correction Code (ECC) in DDR Memories.” Oct. 2020. https://www.synopsys.com/articles/ecc-memory-error-correction.html. [cited by examiner]