IP Library Granted Patent US 11,947,839
Granted Patent B2
US 11,947,839 · App. 17/366,584 · Granted Apr 2, 2024

Storage device, system, and method for customizable metadata

Inventors: Rekha Pitchumani (Oak Hill, VA); Yangwook Kang (San Jose, CA); Yang Seok Ki (Palo Alto, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0659G06F1/30G06F3/0619G06F3/0652G06F3/0679
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 11,947,839
App. No.
17/366,584
Granted
Apr 2, 2024
Kind
B2
Abstract

A storage device includes: protected memory including one or more log pages; non-volatile memory; and a storage controller. The storage controller includes: a command fetcher to receive a data request command associated with data including first metadata and second metadata, and execute the data request command in the non-volatile memory; a logger to identify the second metadata, and log the second metadata in the one or more log pages; and a log page fetcher/eraser to retrieve the second metadata from the one or more log pages in response to a separate command.

Claims (59)

1. A storage device comprising:

protected memory comprising one or more log pages;

non-volatile memory; and

a storage controller configured to:

receive a data request command over a host interface, the data request command including data associated with the data request command, first metadata, and second metadata, and access the non-volatile memory according to the data request command;

identify the second metadata from the data request command;

based on a configuration received over a first interface different from the host interface, log the second metadata in the one or more log pages;

receive a separate command over the first interface; and

retrieve the second metadata from the one or more log pages in response to the separate command,

wherein the first metadata is associated with the data, and processed according to the data request command, and

wherein the second metadata is user-defined metadata included with the data request command, is separately stored from the data and the first metadata, and is processed according to the separate command.

2. The storage device of claim 1 , wherein the storage controller is configured to store the first metadata along with the data in the non-volatile memory, and separately store the second metadata in the one or more log pages.

3. The storage device of claim 1 , wherein the protected memory is a battery-backed dynamic random-access memory (DRAM).

4. The storage device of claim 1 , wherein the protected memory is a DRAM connected to a protective capacitor.

5. The storage device of claim 1 , wherein the storage controller is further configured to:

transfer the one or more log pages from the protected memory to the non-volatile memory; and

transfer a log page from the non-volatile memory to the protected memory.

6. The storage device of claim 5 , wherein the storage controller is configured to transfer the one or more log pages from the protected memory to the non-volatile memory in response to the protected memory exceeding a memory threshold or on power-down.

7. The storage device of claim 1 , wherein the storage controller is configured to expose the first interface different from the host interface as an application programming interface (API) to manage the one or more log pages.

8. The storage device of claim 7 , wherein the API comprises at least one of a list logger command to provide a list of available loggers to a requestor, a write logger command to add a new logger in the protected memory, and a select logger command to select a logger.

9. The storage device of claim 1 , wherein the separate command comprises at least one of a fetch command to return a log page from among the one or more log pages, an erase command to erase a log page from among the one or more log pages, and an iterate command to return a range of log pages from among the one or more log pages.

10. A storage system comprising:

one or more processing circuits; and

a storage device communicably connected to the one or more processing circuits, and comprising:

protected memory comprising one or more log pages;

non-volatile memory; and

a storage controller configured to:

receive a data request command over a host interface to access the non-volatile memory, the data request command including data associated with the data request command, first metadata, and second metadata;

identify the second metadata included with the data request command;

based on a configuration received over a first interface different from the host interface, log the second metadata in the one or more log pages;

receive a separate command over the first interface from a requestor from among the one or more processing circuits; and

retrieve the second metadata from the one or more log pages in response to the separate command,

wherein the first metadata is associated with the data, and processed according to the data request command, and

wherein the second metadata is user-defined metadata included with the data request command, is separately stored from the data and the first metadata, and is processed according to the separate command.

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

transfer the one or more log pages from the protected memory to the non-volatile memory; and

transfer a log page from the non-volatile memory to the protected memory.

12. The storage system of claim 11 , wherein the storage controller is configured to transfer the one or more log pages from the protected memory to the non-volatile memory in response to the protected memory exceeding a memory threshold or on power-down.

13. The storage system of claim 10 , wherein the first interface different from the host interface comprises an application programming interface (API) to enable the one or more processing circuits to manage the one or more log pages.

14. The storage system of claim 13 , wherein the API comprises at least one of a list logger command to provide a list of available loggers to the requestor, a write logger command to add a new logger in the protected memory, and a select logger command to select a logger.

15. The storage system of claim 10 , wherein the separate command comprises at least one of a fetch command to return a log page from among the one or more log pages to the requestor, an erase command to erase a log page from among the one or more log pages, and an iterate command to return a range of log pages from among the one or more log pages.

16. A method of managing metadata, comprising:

receiving, by a processing circuit, a data request command over a host interface to access non-volatile memory, the data request command including data associated with the data request command, first metadata, and second metadata;

determining, by the processing circuit, the second metadata included with the data request command;

based on a configuration received over a first interface different from the host interface, logging, by the processing circuit, the second metadata in one or more log pages in protected memory;

receiving, by the processing circuit, a separate command over the first interface; and

retrieving, by the processing circuit, the second metadata from the one or more log pages in response to the separate command,

wherein the first metadata is associated with the data, and processed according to the data request command, and

wherein the second metadata is user-defined metadata included with the data request command, is separately stored from the data and the first metadata, and is processed according to the separate command.

17. The method of claim 16 , further comprising:

transferring, by the processing circuit, the one or more log pages from the protected memory to the non-volatile memory; and

transferring, by the processing circuit, a log page from the non-volatile memory to the protected memory.

18. The method of claim 17 , wherein the transferring of the one or more log pages from the protected memory to the non-volatile memory comprises:

determining, by the processing circuit, that the protected memory exceeds a memory threshold; and

transferring, by the processing circuit, the one or more log pages from the protected memory to the non-volatile memory in response to the memory threshold being exceeded.

19. The method of claim 17 , wherein the transferring of the one or more log pages from the protected memory to the non-volatile memory comprises:

determining, by the processing circuit, that the protected memory has lost or reduced power; and

transferring, by the processing circuit, the one or more log pages from the protected memory to the non-volatile memory in response to the lost power or reduced power.

20. The method of claim 16 , wherein the separate command comprises at least one of a fetch command to return a log page from among the one or more log pages, an erase command to erase a log page from among the one or more log pages, and an iterate command to return a range of log pages from among the one or more log pages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2021
From: PITCHUMANI, REKHA; KANG, YANGWOOK; KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 057103/0148 →
Continuity (2)
Provisional Application 63186586 · May 10, 2021
Related Publication 20220357886A1 · Nov 10, 2022