IP Library › Granted Patent US 11,513,977
Granted Patent B2
US 11,513,977 · App. 17/006,767 · Granted Nov 29, 2022

Pipelined data processing in fabric-enabled computational storage

Inventors: Yangwook Kang (San Jose, CA); Woongjin Chun (Santa Clara, CA); Yang Seok Ki (Palo Alto, CA)
G06F13/1668G06F3/061G06F3/0659G06F3/0673G06F9/3867
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,513,977
App. No.
17/006,767
Filed
Aug 28, 2020
Granted
Nov 29, 2022
Kind
B2
Examiner
SUN, SCOTT C
Art Unit
2181
USPC
710/5
Abstract

A storage device is disclosed. The storage device may include compute engines. The compute engines may include storage for data, a storage processing unit to manage writing data to the storage and reading data from the storage, a data processing unit to perform some functions on the data, and an accelerator to perform other functions on the data. An Ethernet component may receive a request at the storage device from a host over a network. A data processing coordinator may process the request using a compute engine.

Claims (54)

1. A storage device, comprising:

a first compute engine;

a second compute engine;

an Ethernet component to receive a request at the storage device from a host over a network; and

a Data Processing (DP) coordinator to process the request using the first compute engine and the second compute engine, the DP coordinator including:

a command receiver to receive the request from the Ethernet component;

a data flow manager to determine a control path based at least in part on the request, the control path including a first pairing of a first command shell with the first compute engine and a second pairing of a second command shell with the second compute engine; and

a pipeline processor to send a first command based on the first command shell to the first compute engine and to send a second command based on the second command shell to the second compute engine.

2. A storage device according to claim 1 , wherein the pipeline processor is configured to send the second command based on the second command shell to the second compute engine based at least in part on the DP coordinator receiving a result of the first command from the first compute engine.

3. A storage device according to claim 1 , wherein the first compute engine is configured to execute the first command concurrently with the second compute engine executing the second command.

4. A storage device according to claim 1 , wherein:

the request includes a metadata; and

the data flow manager is configured to determine the control path for the request based at least in part on the metadata in the request.

5. A storage device according to claim 1 , wherein:

the DP coordinator receives binary code from the host over the network;

the second compute engine includes a Data Processing Unit (DPU); and

the DPU is configured to execute the binary code.

6. A method, comprising:

receiving a request at a storage device from a host;

determining a control path for the request, the control path for the request including a first pairing of a command shell with a first compute engine within the storage device and a second pairing of a second command shell with a second compute engine within the storage device;

generating a first command based at least in part on the first command shell;

sending the first command to the first compute engine;

generating a second command based at least in part on the second command shell; and

sending the second command to the second compute engine.

7. A method according to claim 6 , wherein

the first compute engine includes at least one of a first storage for a data, a first Storage Processing Unit (SPU) to manage writing the data or reading the data, a first Data Processing Unit (DPU) to perform a first function on the data, or a first accelerator to perform a second function on the data; and

the second compute engine includes at least one of a second storage for the data, a second SPU to manage writing the data or reading the data, a second DPU to perform a third function on the data, or a second accelerator to perform a fourth function on the data.

8. A method according to claim 6 , wherein determining the control path for the request includes receiving the control path from the host.

9. A method according to claim 8 , wherein receiving the control path from the host includes:

receiving a location where the control path is stored; and

reading the control path from the location in a storage.

10. A method according to claim 6 , wherein:

the request includes a metadata; and

determining the control path for the request includes determining the control path for the request based at least in part on the metadata in the request.

11. A method according to claim 6 , wherein sending the command to the first compute engine includes:

loading binary code for the first compute engine from the host; and

executing the binary code on the first compute engine.

12. A method according to claim 6 , wherein receiving the request at the storage device from the host includes receiving the request at the storage device from the host over an Ethernet connection on the storage device.

13. A method according to claim 6 , wherein the first compute engine processes the command concurrently with the second compute engine processing the second command.

14. An article, comprising a non-transitory storage medium, the non-transitory storage medium having stored thereon instructions that, when executed by a machine, result in:

receiving a request at a storage device from a host;

determining a control path for the request, the control path for the request including a first pairing of a command shell with a first compute engine within the storage device and a second pairing of a second command shell with a second compute engine within the storage device;

generating a first command based at least in part on the first command shell;

sending the first command to the first compute engine;

generating a second command based at least in part on the second command shell; and

sending the second command to the second compute engine.

15. An article according to claim 14 , wherein determining the control path for the request includes determining the control path for the request using a data flow manager within the storage device.

16. A storage device according to claim 1 , wherein:

the first compute engine includes at least one of a first storage for a data, a first Storage Processing Unit (SPU) to manage writing the data or reading the data, a first DPU to perform a first function on the data, or a first accelerator to perform a second function on the data; and

the second compute engine includes at least one of a second storage for the data, a second SPU to manage writing the data or reading the data, a second DPU to perform a third function on the data, or a second accelerator to perform a fourth function on the data.

17. A storage device according to claim 1 , further comprising a third compute engine includes at least one of a third storage for the data, a third SPU to manage writing the data or reading the data, a third DPU to perform a fifth function on the data, or a third accelerator to perform a sixth function on the data.

18. A storage device according to claim 1 , wherein the data flow manager is configured to determine a second control path based at least in part on a second request, the second control path different from the control path.

19. A storage device according to claim 18 , wherein the second control path includes a third pairing of a third command shell with a third compute engine.

20. A method according to claim 6 , wherein determining the control path for the request includes determining the control path for the request using a data flow manager within the storage device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2023
From: KANG, YANGWOOK; CHUN, WOONGJIN; KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 064121/0262 →
Continuity (2)
Provisional Application 63040509 · Jun 17, 2020
Related Publication 20210397567A1 · Dec 23, 2021
Cited By (1)
US 12,619,383