IP Library › Granted Patent US 12,223,210
Granted Patent B2
US 12,223,210 · App. 18/229,902 · Granted Feb 11, 2025

Virtual computational storage devices

Inventors: Gayathiri Venkataraman (Santa Clara, CA); Vishwanath Maram (San Jose, CA); Matthew Shaun Bryson (Los Gatos, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0664G06F3/0604G06F3/0635G06F3/0659G06F3/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,223,210
App. No.
18/229,902
Granted
Feb 11, 2025
Kind
B2
Abstract

A system includes a virtual computational storage emulation module configured to provide a virtual computational storage device. The system further includes a storage element, where the virtual computational storage emulation module is configured to store data associated with the virtual computational storage device at the storage element. The system further includes a compute element. The virtual computational storage emulation module is configured to send a compute request associated with the virtual computational storage device to the compute element.

Claims (44)

1. A system comprising:

a first storage element configured to store first data;

a first compute element;

a second compute element; and

a processor configured to execute instructions for providing a virtual computational storage device, the instructions further causing the processor to:

receive a first compute request associated with the virtual computational storage device;

determine that the first compute request is directed to the first data stored in the first storage element;

based on the instructions that cause the processor to determine that the first compute request is directed to the first data, send the first compute request to the first compute element for generating a first output based on the first compute request, wherein the first compute request is associated with the first data;

receive a second compute request associated with the virtual computational storage device; and

send the second compute request to the second compute element for generating a second output based on the second compute request.

2. The system of claim 1 , wherein the first storage element comprises a solid state drive, and wherein the first storage element, the first compute element, and the second compute element correspond to components of a computational storage device.

3. The system of claim 1 , wherein the first storage element, the first compute element, and the second compute element correspond to components of a server device.

4. The system of claim 1 , wherein the first storage element corresponds to a component of a storage device, and wherein one of the first compute element or the second compute element corresponds to a component of a device distinct from the storage device.

5. The system of claim 1 , wherein the instructions further cause the processor to advertise availability of the virtual computational storage device.

6. The system of claim 1 , wherein the system further includes a second storage element, wherein the instructions further cause the processor to store second data associated with the virtual computational storage device at the second storage element.

7. The system of claim 6 , wherein a first address range of the virtual computational storage device is associated with the first storage element, wherein a second address range of the virtual computational storage device is associated with the second storage element, and wherein the instructions further cause the processor to:

store the first data at the first storage element in response to a first request to store the first data for the first address range; and

store the second data at the second storage element in response to a second request to store the second data for the second address range.

8. The system of claim 6 , wherein the instructions further cause the processor to select the second storage element to store the second data based on a load balancing algorithm.

9. The system of claim 1 , wherein the instructions further cause the processor to:

translate the first compute request to generate a translated first compute request, wherein the translated first compute request is configured to be sent to the first compute element for generating the first output.

10. The system of claim 1 , wherein the instructions further cause the processor to select the second compute element for the second compute request based on an address of second data associated with the second compute request.

11. The system of claim 1 , wherein the instructions further cause the processor to select the second compute element for the second compute request based on a load balancing algorithm.

12. The system of claim 1 , wherein the instructions further cause the processor to provide a second virtual computational storage device.

13. The system of claim 12 , wherein the instructions further cause the processor to store second data associated with the second virtual computational storage device at the first storage element.

14. The system of claim 12 , wherein the instructions further cause the processor to send a third compute request associated with the second virtual computational storage device to the first compute element.

15. A method comprising:

providing, by a processor, a virtual computational storage device, wherein first data associated with the virtual computational storage device is stored at a first storage element;

receiving, by the processor, a first compute request associated with the virtual computational storage device;

determining, by the processor, that the first compute request is directed to the first data stored in the first storage element;

based on the determining that the first compute request is directed to the first data, sending the first compute request to a first compute element for generating a first output based on the first compute request, wherein the first compute request is associated with the first data;

receiving, by the processor, a second compute request associated with the virtual computational storage device; and

sending, by the processor, the second compute request to a second compute element for generating a second output based on the second compute request.

16. The method of claim 15 , wherein second data associated with the virtual computational storage device is stored at a second storage element.

17. The method of claim 16 , wherein a first address range of the virtual computational storage device is associated with the first storage element, wherein a second address range of the virtual computational storage device is associated with the second storage element, the method further comprising:

storing the first data at the first storage element in response to a first request to store the first data for the first address range; and

storing the second data at the second storage element in response to a second request to store the second data for the second address range.

18. The method of claim 15 , further comprising:

receiving a storage request identifying a first address of the virtual computational storage device; and

sending a translated storage request to the first storage element, the translated storage request identifying a translated address of the first storage element.

19. The method of claim 15 further comprising:

translating, by the processor, the first compute request to generate a translated first compute request, wherein the translated first compute request is sent to the first compute element for generating the first output.

20. The method of claim 15 further comprising:

selecting the second compute element for the second compute request based on an address of second data associated with the second compute request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: VENKATARAMAN, GAYATHIRI; MARAM, VISHWANATH; BRYSON, MATTHEW SHAUN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 064904/0571 →
Continuity (3)
Continuation 17351114 · Jun 17, 2021
Provisional Application 63196081 · Jun 2, 2021
Related Publication 20230384981A1 · Nov 30, 2023
References Cited (35)
US 9501245B2 · Hussain et al. · 2016 [cited by applicant]
US 10348830B1 · Malwankar et al. · 2019 [cited by applicant]
US 10671301B2 · Prasad et al. · 2020 [cited by applicant]
US 10680969B1 · Quinn et al. · 2020 [cited by applicant]
US 10684879B2 · Aron et al. · 2020 [cited by applicant]
US 10852954B1 · Krasner et al. · 2020 [cited by applicant]
US 11416298B1 · Barker, Jr. et al. · 2022 [cited by applicant]
US 20020052914A1 · Zalewski · 2002 [cited by examiner]
US 20040193803A1 · Mogi · 2004 [cited by examiner]
US 20120297383A1 · Meisner et al. · 2012 [cited by applicant]
US 20150254088A1 · Chou · 2015 [cited by examiner]
US 20170147370A1 · Williamson · 2017 [cited by applicant]
US 20170285968A1 · Jung et al. · 2017 [cited by applicant]
US 20180024853A1 · Warfield · 2018 [cited by examiner]
US 20180239543A1 · Venetsanopoulos et al. · 2018 [cited by applicant]
US 20190108106A1 · Aggarwal · 2019 [cited by examiner]
US 20200174819A1 · Dong et al. · 2020 [cited by applicant]
US 20200201575A1 · Mizrahi · 2020 [cited by examiner]
US 20200233687A1 · Franciosi et al. · 2020 [cited by applicant]
US 20210173790A1 · Kakaiya · 2021 [cited by examiner]
US 20210349841A1 · Makhervaks · 2021 [cited by examiner]
US 20210373951A1 · Malladi et al. · 2021 [cited by applicant]
CN 105830026A · 2016 [cited by applicant]
DE 102019102643A1 · 2019 [cited by applicant]
KR 1020170061675A · 2017 [cited by applicant]
WO WO2019061014A1 · 2019 [cited by applicant]
Office Action for Korean Application No. 10-2022-0062642 dated Mar. 30, 2023, 4 pages. [cited by applicant]
Barbalace, Antonio, and Jaeyoung Do. “Computational storage: Where are we today ?.” CIDR, Jan. 10-13, 2021. (Year: 2021). [cited by applicant]
Joo, Yongsoo, et al. “Rapid prototyping and evaluation of intelligence functions of active storage devices.” IEEE Transactions on Computers 63.9 (2013): 2356-2368. (Year: 2013). [cited by applicant]
Molgaard, Jason, “A Simple Approach to Implementing Computational Storage,” Storage Solutions Architect Arm, Sep. 2019, 25 pages, Retrieved from the Internet: URL:https://www.snia.org/sites/defau1Vfiles/SDC/2019/present… [cited by applicant]
Siemens Digital Industries Software, “Virtual Verification of Computational Storage Devices,” 2020, 10 pages. [cited by applicant]
Wilcox, Peter, et al. “Design for Computational Storage Simulation Platform,” CHEOPS'21: Proceedings of the Workshop on Challenges and Opportunities of Efficient and Performant Storage Systems, Apr. 2021, 8 pages. [cited by applicant]
EPO Extended European Search Report dated Oct. 21, 2022, issued in corresponding European Patent Application No. 22176078.8 (9 pages). [cited by applicant]
Gibb, Sean, et al., “An NVMe-based Offload Engine for Storage Acceleration,” SDC, Storage Developer Conference, 2017, 21 pages, Retrieved from the Internet: URL:https://www.snia.org/sites/defaulVfiles/SDC/2017/presentat… [cited by applicant]
EPO Office Action dated Nov. 2, 2022, issued in European Patent Application No. 22176078.8 (7 pages). [cited by applicant]