IP Library Granted Patent US 12,608,222
Granted Patent B2
US 12,608,222 · App. 18/133,632 · Granted Apr 21, 2026

System for the remote execution of applications

Inventors: Arnav Goel (Palo Alto, CA); Ravinder Kumar (Palo Alto, CA); Qi Zheng (Palo Alto, CA); Milad Sharif (Palo Alto, CA); Jiayu Bai (Palo Alto, CA); Neal Sanghvi (Palo Alto, CA)
Assignee: SambaNova Systems, Inc
G06F9/4843G06F9/44505G06F9/5016
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,608,222
App. No.
18/133,632
Granted
Apr 21, 2026
Kind
B2
Abstract

A data processing system is presented that is configured as a server in a client-server configuration for executing applications that a client in the client-server configuration can offload as execution tasks for execution on the server. The data processing system includes a reconfigurable processor, a storage device that stores configuration files for the applications, and a host processor that is coupled to the storage device and to the reconfigurable processor. The host processor is configured to receive an execution task of the execution tasks with an identifier of an application from the client, retrieve a configuration file that is associated with the application from the storage device using the identifier of the application, configure the reconfigurable processor with the configuration file, and start execution of the application on the reconfigurable processor, whereby the reconfigurable processor provides output data of the execution of the application to the client.

Claims (70)

1 . A data processing system that is configured as a server in a client- server configuration for executing a plurality of applications that a client in the client-server configuration can offload as execution tasks for execution on the server, comprising:

a reconfigurable processor;

a storage device that stores a plurality of configuration files for the plurality of applications, wherein a first configuration file of the plurality of configuration files is adapted for configuring the reconfigurable processor so that the reconfigurable processor is configured to execute a first application of the plurality of applications;

a host processor that is coupled to the storage device and to the reconfigurable processor, and configured to:

receive a first execution task of the execution tasks with an identifier of the first application from the client,

retrieve the first configuration file from the storage device using the identifier of the first application,

configure the reconfigurable processor with the first configuration file, and

start execution of the first application on the reconfigurable processor, wherein the reconfigurable processor provides output data of the execution of the first application to the client; and

a plurality of IP ports, wherein the host processor is further configured to receive the execution tasks for different applications of the plurality of applications on different IP ports of the plurality of IP ports.

2 . The data processing system of claim 1 , wherein the reconfigurable processor comprises arrays of coarse-grained reconfigurable (CGR) units.

3 . The data processing system of claim 2 , wherein the reconfigurable processor is partitionable into a predetermined number of partitions, wherein each partition of the predetermined number of partitions comprises at least one array of coarse-grained reconfigurable units.

4 . The data processing system of claim 1 , further comprising:

an input buffer that receives the first execution task, and

wherein the host processor is further configured to:

execute a remote direct memory access operation to transfer input parameters for the first application from the client to the input buffer, and

receive a status signal from the client indicating that the remote direct memory access operation has been completed.

5 . The data processing system of claim 4 , wherein the input buffer receives a second execution task of the execution tasks with an identifier of a second application of the plurality of applications and wherein the host processor is further configured to:

pull the second execution task from the input buffer;

execute another remote direct memory access operation to transfer additional input parameters for the second application from the client to the input buffer; and

receive an additional status signal from the client indicating that the other remote direct memory access operation has been completed.

6 . The data processing system of claim 5 , wherein the host processor is further configured to:

retrieve the second configuration file from the storage device using the identifier of the second application;

configure the reconfigurable processor with the second configuration file; and

start execution of the second application on the reconfigurable processor using the additional input parameters, wherein the reconfigurable processor provides additional output data of the execution of the second application to the client.

7 . The data processing system of claim 1 , further comprising:

an output buffer for providing the output data to the client, and

wherein the reconfigurable processor is further configured to:

write the output data to the output buffer, and

send a status signal to the client indicating that the output data is ready to be retrieved.

8 . The data processing system of claim 7 , wherein the reconfigurable processor provides the output data in the output buffer with identifying information to ensure that the output data is provided to an authorized client.

9 . The data processing system of claim 1 , wherein the host processor is further configured to:

detect a tear down of a current session from the client; and

in response to detecting the tear down of the current session, invalidate a cache of active session tokens.

10 . The data processing system of claim 1 , wherein the host processor is further configured to:

allocate physical addresses for a memory segment that is allocated to the execution of the first application on the reconfigurable processor.

11 . The data processing system of claim 1 , wherein the host processor is further configured to:

program a segment lookaside buffer that holds a virtual to physical address mapping for the first application.

12 . A method of operating a data processing system that is configured as a server in a client-server configuration for executing a plurality of applications that a client in the client-server configuration can offload as execution tasks for execution on the server, the data processing system comprising a reconfigurable processor, a storage device that stores a plurality of configuration files for a plurality of applications, wherein a first configuration file of the plurality of configuration files is adapted for configuring the reconfigurable processor so that the reconfigurable processor is configured to execute a first application of the plurality of applications, and a host processor that is coupled to the storage device and to the reconfigurable processor, the method comprising:

receiving a first execution task of the execution tasks with an identifier of the first application from the client;

retrieving, with the host processor, the first configuration file from the storage device using the identifier of the first application;

configuring, with the host processor, the reconfigurable processor with the first configuration file;

starting execution of the first application on the reconfigurable processor;

providing output data of the execution of the first application to the client; and

wherein the host processor is further configured to receive the execution tasks for different applications of the plurality of applications on different IP ports of a plurality of IP ports.

13 . The method of claim 12 , wherein the data processing system comprises an input buffer that receives the first execution task, further comprising:

executing a remote direct memory access operation to transfer input parameters for the first application from the client to the input buffer; and

receiving a status signal from the client indicating that the remote direct memory access operation has been completed.

14 . The method of claim 13 , wherein the input buffer receives a second execution task of the execution tasks with an identifier of a second application of the plurality of applications, further comprising:

pulling the second execution task from the input buffer;

executing another remote direct memory access operation to transfer additional input parameters for the second application from the client to the input buffer; and

receiving an additional status signal from the client indicating that the other remote direct memory access operation has been completed.

15 . The method of claim 14 , further comprising:

retrieving, with the host processor, the second configuration file from the storage device using the identifier of the second application;

configuring, with the host processor, the reconfigurable processor with the second configuration file;

starting execution of the second application on the reconfigurable processor using the additional input parameters, and

providing additional output data of the execution of the second application to the client.

16 . The method of claim 12 , further comprising:

detecting a tear down of a current session from the client; and

in response to detecting the tear down of the current session, invalidating a cache of active session tokens.

17 . The method of claim 12 , further comprising:

determining physical addresses for a memory segment that is allocated to the execution of the first application on the reconfigurable processor.

18 . The method of claim 12 , further comprising:

programming a segment lookaside buffer that holds a virtual to physical address mapping for the first application.

19 . A non-transitory computer-readable storage medium including instructions that, when executed by a processing unit, cause the processing unit to operate a data processing system that is configured as a server in a client-server configuration for executing a plurality of applications that a client in the client-server configuration can offload as execution tasks for execution on the server, the data processing system comprising a reconfigurable processor, a storage device that stores a plurality of configuration files for a plurality of applications, wherein a first configuration file of the plurality of configuration files is adapted for configuring the reconfigurable processor so that the reconfigurable processor is configured to execute a first application of the plurality of applications, and a host processor that is coupled to the storage device and to the reconfigurable processor, the instructions comprising:

receiving a first execution task of the execution tasks with an identifier of the first application from the client;

retrieving the first configuration file from the storage device using the identifier of the first application;

configuring the reconfigurable processor with the first configuration file;

starting execution of the first application on the reconfigurable processor;

providing output data of the execution of the first application to the client; and

wherein the host processor is further configured to receive the execution tasks for different applications of the plurality of applications on different IP ports of a plurality of IP ports.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2023
From: GOEL, ARNAV; KUMAR, RAVINDER; ZHENG, QI; SHARIF, MILAD; BAI, JIAYU; SANGHVI, NEAL
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 064242/0046 →
Continuity (2)
Provisional Application 63330742 · Apr 13, 2022
Related Publication 20230333879A1 · Oct 19, 2023
References Cited (10)
US 20070162610A1 · Un · 2007 [cited by examiner]
US 20070186218A1 · Hayashi · 2007 [cited by examiner]
US 20210157651A1 · Duluk, Jr. · 2021 [cited by examiner]
US 20230091974A1 · Gupta · 2023 [cited by examiner]
US 20230305842A1 · Windh · 2023 [cited by examiner]
WO 2010142987A1 · 2010 [cited by applicant]
Koeplinger et al., Spatial: A Language and Compiler for Application Accelerators, PLDI '18, Jun. 18-22, 2018, Association for Computng Machinery, 16 pages. [cited by applicant]
M. Emani et al., Accelerating Scientific Applications With Sambanova Reconfigurable Dataflow Architecture, in Computing in Science & Engineering, vol. 23, No. 2, pp. 114-119, Mar. 26, 2021, [doi: 10.1109/MCSE.2021.30572… [cited by applicant]
Podobas et al, A Survey on Coarse-Grained Reconfigurable Architectures From a Performance Perspective, IEEEAccess, vol. 2020.3012084, Jul. 27, 2020, 25 pages. [cited by applicant]
Prabhakar et al., Plasticine: A Reconfigurable Architecture for Parallel Patterns, ISCA, Jun. 24-28, 2017, 14 pages. [cited by applicant]