IP Library Granted Patent US 12,468,486
Granted Patent B2
US 12,468,486 · App. 17/855,753 · Granted Nov 11, 2025

Systems, methods, and apparatus for the management of device local memory

Inventors: Oscar P. Pinto (San Jose, CA); William Martin (Roseville, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/0664G06F3/0604G06F3/0659G06F3/0673
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,468,486
App. No.
17/855,753
Granted
Nov 11, 2025
Kind
B2
Abstract

Provided are systems, methods, and apparatuses for managing storage device memory. A method can include receiving, from a host, a command for managing the memory; performing, by the storage device, the command on first data stored on the memory via at least one processing element in the storage device to generate second data; and transmitting, by the storage device, third data based on the second data to the host.

Claims (48)

1 . A method for managing a memory of a storage device, wherein the storage device comprises memory media and storage media, the method comprising:

assigning a first memory range and a second memory range different from the first memory range to a physical memory on the memory media, wherein the first and second memory ranges are memory-mapped to correspond to a first computational component and a second computational component different from the first computational component, respectively, for performing one or more operations on the storage device,

wherein the first and second memory ranges are allocated in the physical memory used in communication between a host and a namespace of a local storage in the storage device;

receiving a first command to perform a first operation in the communication between the host and the namespace;

performing the first operation using the first memory range to generate first data;

receiving, based on the performing, from the host, a second command for managing the first memory range;

performing, by the storage device, the second command on the first data stored on the physical memory via at least one processing element in the storage device associated with the namespace to generate second data,

wherein the second data is stored at a location of the first data;

transmitting, by the storage device, third data based on the second data to the host; and

receiving, based on the transmitting, a third command to perform a second operation using the first memory range.

2 . The method of claim 1 , wherein the second command comprises an operation to set at least a portion of first data to a predetermined bit, and the third data comprises a completion indication.

3 . The method of claim 1 , wherein the memory comprises volatile memory or non-volatile memory located within the storage device and the method further comprises virtualizing the volatile memory or non-volatile memory.

4 . The method of claim 3 , wherein the method comprises communicating, to the host, via a virtual address associated with the volatile memory.

5 . The method of claim 3 , wherein the method further comprises dedicating a portion of the virtualized memory for the first operation or for a first duration.

6 . The method of claim 1 , wherein the command comprises a command generated by an application on the host and received via an application program interface (API).

7 . The method of claim 1 , wherein the storage device comprises a non-volatile memory express (NVMe) enabled storage device or an NVMe-over-Fabric (NVMe-oF) enabled storage device.

8 . A system for managing functions, comprising:

a host comprising an application;

a storage device comprising a processing element, and a memory;

wherein the system stores computer-executable instructions which, when executed by a processor, cause the processor to perform operations comprising:

assigning a first memory range and a second memory range different from the first memory range to a physical memory, wherein the first and second memory ranges are memory-mapped to correspond to a first computational component and a second computational component different from the first computational component, respectively, for performing one or more computations on the storage device,

wherein the first and second memory ranges are allocated in the physical memory used in communication between a host and and a namespace of a local storage in the storage device;

receiving a first command to perform a first operation in the communication between the host and the namespace;

performing the first operation using the first memory range to generate first data;

receiving, based on the performing, from the application on the host, a second command for managing the first memory range;

performing, by the storage device, the second command on the first data stored on the physical memory via at least one processing element in the storage device associated with the namespace to generate second data, wherein the second data is stored at a location of the first data;

transmitting, by the storage device, third data based on the second data to the host; and

receiving, based on the transmitting, a third command to perform a second operation using the first memory range.

9 . The system of claim 8 , wherein the second command comprises an operation to set at least a portion of first data to a predetermined bit, and the third data comprises a completion indication.

10 . The system of claim 8 , wherein the memory comprises volatile memory or non-volatile memory located within the storage device and the operation further comprises virtualizing the volatile memory or non-volatile memory.

11 . The system of claim 10 , wherein the operations further comprise communicating, to the host, via a virtual address associated with the volatile memory.

12 . The system of claim 10 , wherein the operations further comprise dedicating a portion of the virtualized memory for the first operation or for a first duration.

13 . The system of claim 8 , wherein the command comprises a command generated by an application on the host and received via an API.

14 . The system of claim 8 , wherein the storage device comprises an NVMe enabled storage device or an NVMe-oF enabled storage device.

15 . A non-transitory computer-readable medium storing instructions that, when executed by a computer, cause the computer to perform operation for managing a memory of a storage device, the operations comprising:

assigning a first memory range and a second memory range different from the first memory range to a physical memory, wherein the first and second memory ranges are memory-mapped to correspond to a first computational component and a second computational component different from the first computational component, respectively, for performing one or more operations on the storage device,

wherein the first and second memory ranges are allocated in the physical memory used in communication between a host and a namespace of a local storage in the storage device;

receiving a first command to perform a first operation in the communication between the host and the namespace;

performing the first operation using the first memory range to generate first data;

receiving, based on the performing, from the host, a second command for managing the first memory range;

performing, by the storage device, the second command on the first data stored on the physical memory via at least one processing element in the storage device associated with the namespace to generate second data, wherein the second data is stored at a location of the first data;

transmitting, by the storage device, third data based on the second data to the host; and

receiving, based on the transmitting, a third command to perform a second operation.

16 . The non-transitory computer-readable medium of claim 15 , wherein the second command comprises an operation to set at least a portion of first data to a predetermined bit, and the third data comprises a completion indication.

17 . The non-transitory computer-readable medium of claim 15 , wherein the memory comprises volatile memory or non-volatile memory located within the storage device and the operations further comprise virtualizing the volatile memory or non-volatile memory.

18 . The non-transitory computer-readable medium of claim 17 , wherein the operations further comprise communicating, to the host, via a virtual address associated with the volatile memory.

19 . The non-transitory computer-readable medium of claim 17 , wherein the operations further comprise dedicating a portion of the virtualized memory for the first operation or for a first duration.

20 . The non-transitory computer-readable medium of claim 15 , wherein the command comprises a command generated by an application on the host and received via an API.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: PINTO, OSCAR P.; MARTIN, WILLIAM
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 064685/0194 →
Continuity (2)
Provisional Application 63229067 · Aug 3, 2021
Related Publication 20230042551A1 · Feb 9, 2023
References Cited (11)
US 8972689B1 · de la Iglesia · 2015 [cited by examiner]
US 9152505B1 · Brooker · 2015 [cited by examiner]
US 11467776B1 · Chang · 2022 [cited by examiner]
US 20150324285A1 · Murphy et al. · 2015 [cited by applicant]
US 20190121547A1 · Frolikov · 2019 [cited by examiner]
WO 2020186081A1 · 2020 [cited by applicant]
European Extended Search Report for Application No. 22185922.6, mailed Jan. 3, 2023. [cited by applicant]
Kwon, Dongup et al., “A Fast and Flexible Hardware-Based Virtualization Mechanism for Computational Storage Devices,” USENIX Association, 2021 USENIX Annual Technical Conference, 2021, 16 pages. [cited by applicant]
Molgaard, Jason, “A Simple Approach to Implementing Computational Storage Storage Solutions Architect Arm,” SDC, SNIA Computational Storage, Storage Solutions Architect Arm, 2019 Storage Developer Conference, 25 pages. [cited by applicant]
SNIA, SNIA Advancing Storage & Information Technology, “Computational Storage API,” Version 0.5 Rev 0, 2021, 125 pages. [cited by applicant]
European Office Action for Application No. 22185922.6, mailed Aug. 8, 2025. [cited by applicant]