IP Library Granted Patent US 12,730,581
Granted Patent B2
US 12,730,581 · App. 17/814,724 · Granted Sep 8, 2026

Computational storage for logical volumes that span physical devices

Inventors: Arun Raghunath (Portland, OR); Scott Peterson (Beaverton, OR); Kimberly A. Malone (San Jose, CA)
Assignee: Intel Corporation
G06F3/0655G06F3/0604G06F3/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 12,730,581
App. No.
17/814,724
Granted
Sep 8, 2026
Kind
B2
Abstract

Systems, apparatuses and methods may provide for technology that identifies a first namespace descriptor, a device memory descriptor, and a first request to execute a program on a logical volume that spans a plurality of physical drives, selects a first target drive from the plurality of physical drives based on the first namespace descriptor, and configures the first target drive to execute the program on first input data associated with the first namespace descriptor and write a first output of the program to a first memory region in an internal memory of the first target drive. In one example, the technology maps the device memory descriptor to the first memory region.

Claims (55)

1 . A computing system comprising:

a hardware interface to couple to a plurality of physical drives, the plurality of physical drives being computational storage (CS) having a local memory and a computational resource at a storage device; and

a processor to execute logical volume management (LVM) to manage the plurality of physical drives, including to allocate a composed namespace that spans the plurality of physical drives with portions stored in the plurality of physical drives, the LVM to issue a CS command to execute a program at a storage device for a logical volume stored in the plurality of physical drives, issuance of the CS command, including the LVM to:

select a first target drive from the plurality of physical drives based on a first namespace descriptor that identifies the first target drive for a first data portion and a first local memory offset for program execution on the first data portion, send first input data,

and receive a first output of the program from a first memory region in the local memory of the first target drive.

2 . The computing system of claim 1 , wherein to issue the CS command to execute the program on the first target drive includes the LVM to:

transfer the first input data from a first namespace to the local memory of the first target drive, and

initiate an execution of the program on the first target drive.

3 . The computing system of claim 1 , wherein the LVM is further to:

select a second target drive from the plurality of physical drives based on a second namespace

descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion, send second input data, and receive a second output of the program from a second memory region in the local memory of the second target drive.

4 . The computing system of claim 3 , wherein to issue the CS command to execute the program on the second target drive includes the LVM to:

transfer the second input data from a second namespace to the local memory of the second target drive,

transfer the first output from the local memory of the first target drive to the local memory of the second target drive, and

initiate an execution of the program on the second target drive.

5 . The computing system of claim 3 , wherein the the LVM is further to write the program to the plurality of physical drives.

6 . The computing system of claim 1 , wherein the first namespace descriptor identifies a namespace extent used in the CS command, and wherein the first namespace descriptor is associated with a device memory descriptor that identifies the local memory offset for the CS command and with a host memory descriptor that identifies a region in host memory for the CS command.

7 . The computing system of claim 6 , wherein the LVM is to store the first namespace descriptor, the device memory descriptor, and the host memory descriptor in a descriptor library accessed as a layer of indirection specific to issuance of CS commands.

8 . The computing system of claim 6 , further comprising storing the first namespace descriptor, the device memory descriptor, and the host memory descriptor in a descriptor library accessed as a layer of indirection specific to issuance of CS commands.

9 . A storage system comprising:

a plurality of physical drives, the plurality of physical drives being computational storage (CS) having a local memory and a computational resource at a storage device; and

a logical volume management (LVM) device to manage the plurality of physical drives, including to allocate a composed namespace that spans the plurality of physical drives with portions stored in the plurality of physical drives, the LVM device to issue a CS command to execute a program at a storage device for a logical volume stored in the plurality of physical drives, issuance of the CS command, including the LVM device to:

select a first target drive from the plurality of physical drives based on a first namespace descriptor that identifies the first target drive for a first data portion and a first local memory offset for program execution on the first data portion, send first input data,

and receive a first output of the program from a first memory region in the local memory of the first target drive.

10 . The storage system of claim 9 , wherein to issue the CS command to execute the program on the first target drive includes the LVM device to:

transfer the first input data from a first namespace to the local memory of the first target drive; and

initiate an execution of the program on the first target drive.

11 . The storage system of claim 9 , wherein the LVM device is further to:

select a second target drive from the plurality of physical drives based on a second namespace

descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion, send second input data, and receive a second output of the program from a second memory region in the local memory of the second target drive.

12 . The storage system of claim 11 , wherein to issue the CS command to execute the program on the second target drive includes the LVM device to:

transfer the second input data from a second namespace to the local memory of the second target drive;

transfer the first output from the local memory of the first target drive to the local memory of the second target drive; and

initiate an execution of the program on the second target drive.

13 . The storage system of claim 11 , wherein the the LVM device is further to write the program to the plurality of physical drives.

14 . The storage system of claim 9 , wherein the first namespace descriptor identifies a namespace extent used in the CS command, and wherein the first namespace descriptor is associated with a device memory descriptor that identifies the local memory offset for the CS command and with a host memory descriptor that identifies a region in host memory for the CS command.

15 . The storage system of claim 14 , wherein the LVM device is to store the first namespace descriptor, the device memory descriptor, and the host memory descriptor in a descriptor library accessed as a layer of indirection specific to issuance of CS commands.

16 . A method comprising:

in a storage system having a plurality of physical drives, the plurality of physical drives being computational storage (CS) having a local memory and a computational resource at a storage device, allocating a composed namespace that spans the plurality of physical drives with portions stored in the plurality of physical drives; and

issuing a CS command to execute a program at a storage device for a logical volume stored in the plurality of physical drives, including:

selecting a first target drive from the plurality of physical drives based on a first namespace descriptor that identifies the first target drive for a first data portion and a first local memory offset for program execution on the first data portion;

sending first input data; and

receiving a first output of the program from a first memory region in the local memory of the first target drive.

17 . The method of claim 16 , wherein issuing the CS command to execute the program on the first target drive includes:

transferring the first input data from a first namespace to the local memory of the first target drive; and

initiating an execution of the program on the first target drive.

18 . The method of claim 16 , further including:

selecting a second target drive from the plurality of physical drives based on a second namespace descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion;

sending second input data; and

configuring descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion, send second input data, and receive a second output of the program from a second memory region in the local memory of the second target drive.

19 . The method of claim 18 , wherein to execute the program on the second target drive includes:

transferring the second input data from a second namespace to the local memory of the second target drive;

transferring the first output from the local memory of the first target drive to the local memory of the second target drive; and

initiating an execution of the program on the second target drive.

20 . The method of claim 16 , wherein the first namespace descriptor identifies a namespace extent used in the CS command, and wherein the first namespace descriptor is associated with a device memory descriptor that identifies the local memory offset for the CS command and with a host memory descriptor that identifies a region in host memory for the CS command.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2026
From: INTEL CORPORATION
To: INTEL PRODUCTS IP LLC
Reel/Frame 075990/0991 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2022
From: RAGHUNATH, ARUN; PETERSON, SCOTT; MALONE, KIMBERLY A.
To: INTEL CORPORATION
Reel/Frame 060781/0797 →
Continuity (1)
Related Publication 20220365709A1 · Nov 17, 2022
References Cited (15)
US 10878883B2 · Murphy · 2020 [cited by examiner]
US 20080109620A1 · Nabekura · 2008 [cited by examiner]
US 20090144347A1 · Boyd · 2009 [cited by examiner]
US 20210279007A1 · Trika · 2021 [cited by applicant]
US 20210373805A1 · Alsop · 2021 [cited by examiner]
US 20210389890A1 · Trika · 2021 [cited by applicant]
US 20220011935A1 · Pitchumani · 2022 [cited by examiner]
US 20220197704A1 · Gibb · 2022 [cited by examiner]
US 20230195645A1 · Puthoor · 2023 [cited by examiner]
NVM Express Inc., “NVM Express® Base Specification, revision 2.0b,” <nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-2.0b-2021.12.18-Ratified.pdf>, Jan. 6, 2022, 455 pages. [cited by applicant]
Wikipedia, “Computer data storage”, <en.wikipedia.org/wiki/Computer_data_storage>, retrieved Jun. 27, 2022, 19 pages. [cited by applicant]
Wikipedia, “Data striping”, <en.wikipedia.org/wiki/Data_striping>, retrieved Jun. 27, 2022, 3 pages. [cited by applicant]
Wikipedia, “Device file”, <en.wikipedia.org/wiki/Device_file>, retrieved Jun. 27, 2022, 12 pages. [cited by applicant]
Wikipedia, “Disk partitioning”, <en.wikipedia.org/wiki/Disk_partitioning>, retrieved Jun. 27, 2022, 7 pages. [cited by applicant]
Wikipedia, “Mass storage”, <en.wikipedia.org/wiki/Mass_storage>, retrieved Jun. 27, 2022, 4 pages. [cited by applicant]