IP Library Granted Patent US 12669964
Granted Patent B2
US 12669964 · App. 19/067,339 · Granted Jun 30, 2026

SSD managed host write atomicity with arbitrary transfer length

Inventors: Peng Li (Beaverton, OR); Jawad Khan (Portland, OR); Jackson Ellis (Fort Collins, CO); Sanjeev Trika (Portland, OR)
Assignee: SK hynix NAND Product Solutions Corp.
G06F3/0659G06F3/0619G06F3/0656G06F3/0679G06F12/1009G06F2212/657
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 12669964
App. No.
19/067,339
Granted
Jun 30, 2026
Kind
B2
Abstract

An embodiment of an electronic apparatus may include one or more substrates, and logic coupled to the one or more substrates, the logic to control access to a primary persistent storage with a first type of media and a nonvolatile memory buffer with a second type of media that is different from the first type of media, store metadata for incoming write data in the nonvolatile memory buffer, store other data for the incoming write data in the primary persistent storage, and provide both runtime and power-fail write atomicity for the incoming write data. Other embodiments are disclosed and claimed.

Claims (57)

1 . An apparatus, comprising:

memory; and

a controller coupled to the memory, the controller configured to at least:

control access to a primary persistent storage with a first type of media and a nonvolatile memory buffer with a second type of media that is different from the first type of media,

store metadata for first data in the nonvolatile memory buffer,

store second data for the first data in the primary persistent storage,

provide write atomicity for the first data,

store the metadata for the first data in a first pool of the nonvolatile memory buffer, and

store primary persistent storage addresses for the first data in a second pool of the nonvolatile memory buffer.

2 . The apparatus of claim 1 , wherein the controller is further configured to:

maintain two or more queues for each of the first pool and the second pool of the nonvolatile memory buffer; and

build a linked list of primary persistent storage address items for the first data in the second pool of the nonvolatile memory buffer.

3 . The apparatus of claim 1 , wherein the controller is further configured to update a logical-to-physical indirection table based on the metadata.

4 . The apparatus of claim 3 , wherein updating the logical-to-physical indirection table based on the metadata comprises:

atomically updating multiple entries in the logical-to-physical indirection table after full write information for the first data is available based on the metadata stored in the first pool and the linked list of primary persistent storage address items.

5 . The apparatus of claim 4 , wherein the controller is further configured to:

sequence updates of the logical-to-physical indirection table for the first data separately from third data.

6 . The apparatus of claim 4 , wherein the controller is further configured to:

discard the metadata in the nonvolatile memory buffer and the second data in the primary persistent storage without an update of the logical-to-physical indirection table based on an indicator in the NVM buffer in the event of a recovery from a power failure.

7 . The apparatus of claim 1 , wherein the primary persistent storage and the nonvolatile memory buffer are part of a solid state drive.

8 . A system, comprising:

a primary persistent storage with a first type of media;

a nonvolatile memory buffer with a second type of media that is different from the first type of media; and

a controller communicatively coupled to the primary persistent storage and the nonvolatile memory buffer, the controller being configured to at least:

store metadata for first data in the nonvolatile memory buffer,

store second data for the first data in the primary persistent storage,

provide write atomicity for the first data,

store the metadata for the first data in a first pool of the nonvolatile memory buffer, and

store primary persistent storage addresses for the first data in a second pool of the nonvolatile memory buffer.

9 . The system of claim 8 , wherein the controller is further configured to:

maintain two or more queues for each of the first pool and the second pool of the nonvolatile memory buffer; and

build a linked list of primary persistent storage address items for the first data in the second pool of the nonvolatile memory buffer.

10 . The system of claim 8 , wherein the controller is further configured to update a logical-to-physical indirection table based on the metadata.

11 . The system of claim 10 , wherein updating the logical-to-physical indirection table based on the metadata comprises:

atomically updating multiple entries in the logical-to-physical indirection table after full write information for the first data is available based on the metadata stored in the first pool and the linked list of primary persistent storage address items.

12 . The system of claim 11 , wherein the controller is further configured to:

sequence updates of the logical-to-physical indirection table for the first data separately from third data.

13 . The system of claim 11 , wherein the controller is further configured to:

discard the metadata in the nonvolatile memory buffer and the second data in the primary persistent storage without an update of the logical-to-physical indirection table based on an indicator in the NVM buffer in the event of a recovery from a power failure.

14 . The system of claim 8 , wherein the primary persistent storage and the nonvolatile memory buffer are part of a solid state drive.

15 . A method of controlling storage, comprising:

controlling, using a controller, access to a primary persistent storage with a first type of media and a nonvolatile memory buffer with a second type of media that is different from the first type of media;

storing metadata for first data in the nonvolatile memory buffer;

storing second data for the first data in the primary persistent storage;

providing write atomicity for the first data;

storing the metadata for the first data in a first pool of the nonvolatile memory buffer, and

storing primary persistent storage addresses for the first data in a second pool of the nonvolatile memory buffer.

16 . The method of claim 15 , further comprising:

maintaining two or more queues for each of the first pool and the second pool of the nonvolatile memory buffer; and

building a linked list of primary persistent storage address items for the first data in the second pool of the nonvolatile memory buffer.

17 . The method of claim 15 , further comprising updating a logical-to-physical indirection table based on the metadata.

18 . The method of claim 17 , wherein updating the logical-to-physical indirection table based on the metadata comprises:

atomically updating multiple entries in the logical-to-physical indirection table after full write information for the first data is available based on the metadata stored in the first pool and the linked list of primary persistent storage address items.

19 . The method of claim 18 , further comprising:

sequencing updates of the logical-to-physical indirection table for the first data separately from third data.

20 . The method of claim 18 , further comprising:

discarding the metadata in the nonvolatile memory buffer and the second data in the primary persistent storage without an update of the logical-to-physical indirection table based on an indicator in the NVM buffer in the event of a recovery from a power failure.