US12608222B2UtilityA1

System for the remote execution of applications

Priority: Filed: Apr 12, 2023Granted: Apr 21, 2026
G06F 9/5016G06F 9/44505G06F 9/4843
30
PatentIndex Score
0
Cited by
10
References
19
Claims

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

exact text as granted — not AI-modified
What is claimed is: 
     
         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.

Join the waitlist — get patent alerts

Track US12608222B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.