System for the remote execution of applications
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-modifiedWhat 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.