IP Library Granted Patent US 12,468,461
Granted Patent B2
US 12,468,461 · App. 17/459,414 · Granted Nov 11, 2025

Automatic selection of computational non-volatile memory targets

Inventor: Sanjeev Trika (Portland, OR)
Assignee: SK Hynix NAND Product Solutions Corp.
G06F3/0635G06F3/0604G06F3/0632G06F3/0659G06F3/0688
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,461
App. No.
17/459,414
Granted
Nov 11, 2025
Kind
B2
Abstract

Systems, apparatuses and methods may provide for memory controller technology that detects an application function, a data specifier associated with the application function, and one or more operating parameters associated with the application function, generates execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the operating parameter(s), and one or more device capabilities associated with the plurality of computational storage devices, and selects a target storage device from the plurality of storage devices based on the execution estimates.

Claims (60)

1 . A semiconductor apparatus comprising:

one or more substrates; and

logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable or fixed-functionality hardware, the logic to:

detect an application function to execute on a computational storage device with a data specifier of data to operate on with the application function, the application function having one or more operating parameters to define execution of the application function;

determine whether an asymptotic complexity of the application function is known;

based on determining that the asymptotic complexity of the application function is known, generate, based on the asymptotic complexity, execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices;

based on determining that the asymptotic complexity of the application function is unknown:

conduct one or more test executions of the application function on a temporary dataset;

determine a new asymptotic complexity of the application function based on the one or more test executions; and

generate, based on the new asymptotic complexity, the execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices; and

select a target computational storage device from the plurality of computational storage devices based on the execution estimates.

2 . The semiconductor apparatus of claim 1 , wherein the execution estimates include a cost to read data, a cost to transfer data and a cost to execute the application function on data.

3 . The semiconductor apparatus of claim 1 , wherein the logic is to:

determine the computational and storage capabilities at an initialization time; and

update the computational and storage capabilities at a runtime.

4 . The semiconductor apparatus of claim 1 , wherein the computational and storage capabilities include one or more of power capabilities, memory capabilities, access time capabilities, fixed-function capabilities or performance capabilities.

5 . The semiconductor apparatus of claim 1 , wherein the one or more operating parameters include one or more preferences and one or more criteria.

6 . A computing system comprising:

a plurality of computational storage devices;

a memory controller coupled to the plurality of computational storage devices; and

a memory comprising instructions, which when executed cause the memory controller to:

detect an application function to execute on one of the plurality of computational storage devices with a data specifier of data to operate on which the application function, the application function having one or more operating parameters to define execution of the application function,

determine whether an asymptotic complexity of the application function is known;

based on determining that the asymptotic complexity of the application function is known, generate, based on the asymptotic complexity, execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices;

based on determining that the asymptotic complexity of the application function is unknown:

conduct one or more test executions of the application function on a temporary dataset;

determine a new asymptotic complexity of the application function based on the one or more test executions; and

generate, based on the new asymptotic complexity, the execution estimates for the plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices, and

select a target computational storage device from the plurality of computational storage devices based on the execution estimates.

7 . The computing system of claim 6 , wherein the execution estimates include a cost to read data, a cost to transfer data and a cost to execute the application function on data.

8 . The computing system of claim 6 , wherein the instructions, when executed, further cause the memory controller to:

determine the computational and storage capabilities at an initialization time; and

update the computational and storage capabilities at a runtime.

9 . The computing system of claim 6 , wherein the computational and storage capabilities include one or more of power capabilities, memory capabilities, access time capabilities, fixed-function capabilities or performance capabilities.

10 . The computing system of claim 6 , wherein the one or more operating parameters include one or more preferences and one or more criteria.

11 . At least one computer readable storage medium comprising instructions, which when executed by a memory controller, cause the memory controller to:

detect an application function to execute on a computational storage device with a data specifier of data to operate on with the application function, the application function having one or more operating parameters to define execution of the application function;

determine whether an asymptotic complexity of the application function is known;

based on determining that the asymptotic complexity of the application function is known, generate, based on the asymptotic complexity, execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices;

based on determining that the asymptotic complexity of the application function is unknown:

conduct one or more test executions of the application function on a temporary dataset;

determine a new asymptotic complexity of the application function based on the one or more test executions; and

generate, based on the new asymptotic complexity, the execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices; and

select a target computational storage device from the plurality of computational storage devices based on the execution estimates.

12 . The at least one computer readable storage medium of claim 11 , wherein the execution estimates include a cost to read data, a cost to transfer data and a cost to execute the application function on data.

13 . The at least one computer readable storage medium of claim 11 , wherein the instructions, when executed, further cause the memory controller to:

determine the computational and storage capabilities at an initialization time; and

update the computational and storage capabilities at a runtime.

14 . The at least one computer readable storage medium of claim 11 , wherein the computational and storage capabilities include one or more of power capabilities, memory capabilities, access time capabilities, fixed-function capabilities or performance capabilities.

15 . The at least one computer readable storage medium of claim 11 , wherein the one or more operating parameters include one or more preferences and one or more criteria.

16 . A method comprising:

detecting an application function to execute on a computational storage device with a data specifier of data to operate on with the application function, the application function having one or more operating parameters to define execution of the application function;

determining whether an asymptotic complexity of the application function is known;

based on determining that the asymptotic complexity of the application function is known, generate, based on the asymptotic complexity, execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices;

based on determining that the asymptotic complexity of the application function is unknown:

conducting one or more test executions of the application function on a temporary dataset;

determining a new asymptotic complexity of the application function based on the one or more test executions; and

generating, based on the asymptotic complexity, the execution estimates for a plurality of computational storage devices based on the application function, the data specifier, the one or more operating parameters, and computational and storage capabilities associated with the plurality of computational storage devices; and

selecting a target computational storage device from the plurality of computational storage devices based on the execution estimates.

17 . The method of claim 16 , wherein the execution estimates include a cost to read data, a cost to transfer data and a cost to execute the application function on data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072549/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2021
From: TRIKA, SANJEEV
To: INTEL CORPORATION
Reel/Frame 057323/0476 →
Continuity (1)
Related Publication 20210389890A1 · Dec 16, 2021
References Cited (5)
US 20100153925A1 · Klein · 2010 [cited by examiner]
US 20190166192A1 · Ding · 2019 [cited by examiner]
US 20210037140A1 · Morgan · 2021 [cited by examiner]
US 20220019541A1 · Dubey · 2022 [cited by examiner]
U.S. Appl. No. 17/313,668, entitled “Device-Initiated Input/Output Assistance For Computational Non-Volatile Memory On Disk-Cached And Tiered Systems,” filed on May 6, 2021, 31 pages. [cited by applicant]