IP Library › Granted Patent US 11,755,251
Granted Patent B2
US 11,755,251 · App. 17/351,114 · Granted Sep 12, 2023

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 11,755,251
App. No.
17/351,114
Granted
Sep 12, 2023
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 (40)

1. A system comprising:

a processor configured to execute a virtual computational storage emulation module for providing a virtual computational storage device;

a storage element, wherein the virtual computational storage emulation module is configured to store data associated with the virtual computational storage device at the storage element; and

a compute element, wherein the processor is further configured to execute the virtual computational storage emulation module to:

receive a first compute request associated with the virtual computational storage device, the first compute request adhering to a first protocol;

translate the first compute request to a second compute request, the second compute request adhering to a second protocol; and

send the second compute request to the compute element for generating an output responsive to the second compute request.

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

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

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

5. The system of claim 1 , wherein the processor is further configured to execute the virtual computational storage emulation module 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 processor is further configured to execute the virtual computational storage emulation module 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 storage element, wherein a second address range of the virtual computational storage device is associated with the second storage element, and wherein the processor is further configured to execute the virtual computational storage emulation module to:

store the data at the storage element in response to a first request to store the data indicating 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 indicating the second address range.

8. The system of claim 6 , wherein the processor is further configured to execute the virtual computational storage emulation module 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 system further includes a second compute element, wherein the processor is further configured to execute the virtual computational storage emulation module to send a second compute request associated with the virtual computational storage device to the second compute element.

10. The system of claim 9 , wherein the processor is further configured to execute the virtual computational storage emulation module to select the second compute element for the second compute request based on an address of data associated with the second compute request.

11. The system of claim 9 , wherein the processor is further configured to execute the virtual computational storage emulation module 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 processor is further configured to execute the virtual computational storage emulation module to provide a second virtual computational storage device.

13. The system of claim 12 , wherein the processor is further configured to execute the virtual computational storage emulation module to store second data associated with the second virtual computational storage device at the storage element.

14. The system of claim 12 , wherein the processor is further configured to execute the virtual computational storage emulation module to send a second compute request associated with the second virtual computational storage device to the compute element.

15. A method comprising:

providing, at a virtual computational storage device emulation module, a virtual computational storage device, wherein data associated with the virtual computational storage device is stored at a storage element;

receiving, at the virtual computational storage device emulation module, a compute request for the virtual computational storage device; and

sending a translation of the compute request to a compute element, wherein sending the translation of the compute request includes translating the compute request from a first protocol to a second protocol.

16. The method of claim 15 , wherein sending the translation of the compute request includes translating an address of the virtual computational storage device identified by the compute request to a translated address of the storage element.

17. 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 storage element, the translated storage request identifying a translated address of the storage element.

18. A system comprising:

a compute element of a first device;

a storage element of a second device;

a computational storage client; and

a processor configured to:

receive a compute request from the computational storage client;

send a translation of the compute request to the compute element of the first device, wherein in sending the translation of the compute request, the processor is configured to translate the compute request from a first protocol to a second protocol;

receive a storage request from the computational storage client; and

send a translation of the storage request to the storage element of the second device.

19. The system of claim 18 , wherein the compute element corresponds to a field programmable gate array (FPGA).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2021
From: VENKATARAMAN, GAYATHIRI; MARAM, VISHWANATH; BRYSON, MATTHEW SHAUN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 057284/0759 →
Continuity (2)
Provisional Application 63196081 · Jun 2, 2021
Related Publication 20220391148A1 · Dec 8, 2022