IP Library Granted Patent US 11,379,277
Granted Patent B2
US 11,379,277 · App. 17/093,403 · Granted Jul 5, 2022

System and method for computational storage device intercommunication

Inventors: Hermes Costa (Mission Viejo, CA); Vladimir Alves (Tustin, CA)
Assignee: NGD SYSTEMS, INC.
G06F9/542G06F3/067G06F3/0619G06F3/0659G06F3/0673G06F9/546G06F13/102G06F13/1668
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,379,277
App. No.
17/093,403
Granted
Jul 5, 2022
Kind
B2
Abstract

A method of facilitating communication to an embedded computer in a computational storage device via a host includes receiving a message for transmission to an embedded process running at the embedded computer, determining that a destination address of the message corresponds to the embedded computer within the computational storage device, in response to the determination, forwarding the message to a host relay process associated with the embedded computer, and encapsulating the message to generate a proprietary command for transmission to the computational storage device.

Claims (42)

1. A method of facilitating communication to an embedded computer in a computational storage device via a host, the method comprising:

receiving, by a host kernel of the host, a message, from an external network device communicatively coupled to an external device, for transmission to an embedded process running at the embedded computer, the message comprising embedded data to be processed by the embedded computer;

determining, by the host kernel, that a destination address of the message corresponds to the embedded computer within the computational storage device, the computational storage device being external to the host, the embedded computer being configured to receive the embedded data, to perform data operations or analytics on the embedded data, and to generate output data;

in response to the determination, forwarding, by a host pseudo network device driver of the host, the message to a host relay process associated with the embedded computer;

encapsulating the message, by the host relay process, to generate a proprietary command for transmission to the computational storage device;

identifying a block device driver of the host that is associated with the embedded computer;

sending the proprietary command to the block device driver for transmission to an interconnect of the host; and

receiving a response message from the computational storage device, the response message corresponding to the output data.

2. The method of claim 1 , further comprising:

receiving, by the host relay process of the host, the message from the external network device; and

storing, by the host relay process, the message to a host memory and notifying a host pseudo network device driver of availability of the message.

3. The method of claim 2 , wherein the external network device is communicatively coupled to the external device via a communications network.

4. The method of claim 2 , wherein the message is generated by an external user process at the external device and comprises the destination address and data to be processed by the embedded computer.

5. The method of claim 1 , wherein the interconnect is configured to convert the proprietary command into electrical signals for transmission to the computational storage device via a transmission medium.

6. The method of claim 1 , wherein the encapsulating the message comprises:

reformatting the message as the proprietary command to be compatible with a communication protocol of the host and the computational storage device.

7. The method of claim 1 , wherein the proprietary command is configured to instruct a storage controller of the computational storage device to transmit the message to the embedded computer and not to perform any standard read or write command for transmission of data from or to a storage media of the computational storage device.

8. The method of claim 1 , wherein the embedded computer is integrated within the computational storage device.

9. The method of claim 1 , wherein the message comprises a destination address of the embedded computer and data to be processed by the embedded computer.

10. The method of claim 1 , wherein the host pseudo network device driver is a native feature of the host kernel, and

wherein the host relay process resides at a user space level of a host operating system.

11. The method of claim 1 , wherein the determining that the destination address of the message corresponds to the embedded computer comprises:

identifying, by the host kernel, the destination address of the message; and

cross-checking, by the host kernel, the destination address against a look-up table internal to the host.

12. The method of claim 1 , wherein the encapsulating the message comprises:

stripping, by the host relay process, unused portions of the message, concatenating more than one message into one or fragmenting one message into multiple messages; and

reformatting, by the host relay process, the stripped message into the proprietary command that is compatible with a communication protocol of the host and the computational storage device.

13. A method of facilitating communication from a host to an embedded computer in a computational storage device, the method comprising:

receiving, by a storage controller of the computational storage device, a message relayed by the host through a transmission medium, the message being from an external device communicatively coupled to the host and comprising embedded data to be processed by the embedded computer;

determining, by the storage controller, whether a destination address of the message corresponds to the embedded computer or a storage media of the computational storage device; and

in response to determining that a destination of the message is the embedded computer:

sending, by the storage controller, a signal that a message is available to an embedded relay process associated with the embedded computer, and writing the message to an operational memory of the computational storage device;

forwarding, by the embedded relay process, the message to an embedded pseudo network device driver of the embedded computer for transmission to an embedded user process of the embedded computer;

receiving, by the embedded user process, the embedded data; and

performing, by the embedded user process, data operations or analytics on the embedded data to generate output data for transmission to the host,

wherein the embedded pseudo network device driver is a native feature of a host kernel of the embedded computer, and

wherein the embedded relay process resides at a user space level of an operating system of the embedded computer.

14. The method of claim 13 , wherein the embedded computer is integrated within the computational storage device.

15. The method of claim 13 , wherein the message comprises the destination address associated with the embedded computer and data to be processed by the embedded computer.

16. The method of claim 13 , wherein the determining the destination address of the message comprises:

identifying, by an embedded kernel, the destination address of the message; and

cross-checking, by the embedded kernel, the destination address against a look-up table internal to the computational storage device.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF CONVEYING PARTY PREVIOUSLY RECORDED AT REEL: 69518 FRAME: 243. ASSIGNOR(S) HEREBY CONFIRMS THE ASSET PURCHASE AGREEMENT. Recorded Jan 29, 2025
From: NGD SYSTEMS, INC.
To: NETLIST, INC.
Reel/Frame 070163/0719 →
ASSET PURCHASE AGREEMENT Recorded Dec 5, 2024
From: CMBG-FBC NGD SYSTEMS, LLC
To: NETLIST, INC.
Reel/Frame 069518/0243 →
SECURITY INTEREST Recorded Nov 3, 2021
From: NGD SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 058012/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2020
From: COSTA, HERMES; ALVES, VLADIMIR
To: NGD SYSTEMS, INC.
Reel/Frame 054377/0838 →
Continuity (3)
Continuation 16653428 · Oct 15, 2019
Provisional Application 62746357 · Oct 16, 2018
Related Publication 20210055975A1 · Feb 25, 2021