System and method for hardware-software multitasking on a reconfigurable computing platform
First Claim
1. A method of dynamically reconfiguring a computing platform in a process for executing at least one application on the platform, the platform comprising a reconfigurable processing device, the method comprising:
- first-configuring the reconfigurable device so as to be capable of executing a first plurality of hardware tasks;
after the first-configuring, executing a first set of tasks of an application substantially simultaneously on the platform, at least two of the first set of tasks being executed as hardware tasks on the reconfigurable device;
interrupting the execution of the first set of tasks wherein the interruption occurs while executing a task;
second-configuring the reconfigurable device such that at least one new hardware task other than one of the first plurality of hardware tasks can be executed; and
executing a second set of tasks substantially simultaneously on the platform to further execute the application, wherein at least two of the second set of tasks include the at least one new hardware task and are executed as hardware tasks on the reconfigurable device, and wherein the execution of the second set of tasks includes the resumed execution of the interrupted task,wherein the application comprises a plurality of tasks, a number of the tasks being selectably executable as a software task on a programmable processor or as a hardware task on a hardware device;
wherein the reconfigurable device comprises a plurality of tiles, each tile being configurable in a variety of configurations, each of the tile configurations being capable of running a hardware task and wherein the second-configuring of the reconfigurable device changes at least one of the tiles from one configuration to another configuration; and
wherein the reconfigurable device comprises a communication network for providing communication between the tiles, and during the second-configuring of the reconfigurable device, the communication network remains fixed.
2 Assignments
0 Petitions
Accused Products
Abstract
A platform supporting reconfigurable computing, enabling the introduction of reconfigurable hardware into portable devices is described. Dynamic hardware/software multitasking methods for a reconfigurable computing platform including reconfigurable hardware devices such as gate arrays, especially FPGA'"'"'s, and software, such as dedicated hardware/software operating systems and middleware, adapted for supporting the methods, especially multitasking, are described. A computing platform, which is a heterogeneous multi-processor platform, containing one or more instruction set processors (ISP) and a reconfigurable matrix (for instance a gate array, especially an FPGA), adapted for (dynamic) hardware/software multitasking is described.
52 Citations
28 Claims
-
1. A method of dynamically reconfiguring a computing platform in a process for executing at least one application on the platform, the platform comprising a reconfigurable processing device, the method comprising:
-
first-configuring the reconfigurable device so as to be capable of executing a first plurality of hardware tasks; after the first-configuring, executing a first set of tasks of an application substantially simultaneously on the platform, at least two of the first set of tasks being executed as hardware tasks on the reconfigurable device; interrupting the execution of the first set of tasks wherein the interruption occurs while executing a task; second-configuring the reconfigurable device such that at least one new hardware task other than one of the first plurality of hardware tasks can be executed; and executing a second set of tasks substantially simultaneously on the platform to further execute the application, wherein at least two of the second set of tasks include the at least one new hardware task and are executed as hardware tasks on the reconfigurable device, and wherein the execution of the second set of tasks includes the resumed execution of the interrupted task, wherein the application comprises a plurality of tasks, a number of the tasks being selectably executable as a software task on a programmable processor or as a hardware task on a hardware device; wherein the reconfigurable device comprises a plurality of tiles, each tile being configurable in a variety of configurations, each of the tile configurations being capable of running a hardware task and wherein the second-configuring of the reconfigurable device changes at least one of the tiles from one configuration to another configuration; and wherein the reconfigurable device comprises a communication network for providing communication between the tiles, and during the second-configuring of the reconfigurable device, the communication network remains fixed. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
a reconfigurable device; a programmable processor configured to communicate with the reconfigurable device; and an operating system of a computing platform, configured to execute on the programmable processor and capable of managing the execution of at least one application that includes a plurality of tasks, the operating system comprising; a scheduler configured to schedule the tasks; and a reconfiguring section configured to reconfigure at run-time resources for a hardware task executed on the reconfigurable device, wherein the operating system is adapted for operating with a platform with a reconfigurable device, comprising a plurality of tiles, each tile being configurable in a variety of configurations, each of the tile configurations being capable of running a hardware component, and wherein the system further comprises means for storing the usage of tiles by the hardware components at any moment; wherein a number of the tasks are selectably executable as a software task on the programmable processor or as a hardware task on a hardware device, on the computing platform comprising at least one programmable processor and the reconfigurable device; wherein the reconfigured tasks are not required to be rerouted to a different resource. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method of dynamically reconfiguring a computing platform that includes a reconfigurable processing device, the method comprising:
-
configuring the reconfigurable device so as to be capable of executing a first plurality of hardware tasks; multi-tasking a first set of tasks of an application on the platform, wherein at least two of the first set of tasks are hardware tasks being concurrently executed on the reconfigurable device; interrupting the execution of the first set of tasks; configuring the reconfigurable device such that at least one new hardware task other than one of the first plurality of hardware tasks can be executed; and multi-tasking a second set of tasks on the platform to further execute the application, wherein at least two of the second set of tasks are hardware tasks being concurrently executed on the reconfigurable device, and include the at least one new hardware task, wherein the application comprises a plurality of tasks, a number of the tasks being selectably executable as a software task on a programmable processor or as a hardware task on a hardware device; wherein the reconfigurable device comprises a plurality of tiles, each tile being configurable in a variety of configurations, each of the tile configurations being capable of running a hardware task and wherein the configuring of the reconfigurable device with the one new hardware task changes at least one of the tiles from one configuration to another configuration; and wherein the reconfigurable device comprises a communication network for providing communication between the tiles, and during the configuring of the reconfigurable device with the one new hardware task, the communication network remains fixed.
-
-
26. A system for dynamically reconfiguring a computing platform, wherein the computing platform is configured to execute at least one application, and the platform comprises a reconfigurable processing device, the system comprising:
-
means for configuring the reconfigurable device so as to be capable of executing a first plurality of hardware tasks; means for, after the configuring, executing a first set of tasks of an application substantially simultaneously on the platform, at least two of the first set of tasks being executed as hardware tasks on the reconfigurable device; means for interrupting the execution of the first set of tasks; means for configuring the reconfigurable device such that at least one new hardware task other than one of the first plurality of hardware tasks can be executed; and means for executing a second set of tasks substantially simultaneously on the platform to further execute the application, at least two of the second set of tasks including the at least one new hardware task and being executed as hardware tasks on the reconfigurable device, wherein the application comprises a plurality of tasks, a number of the tasks being selectably executable as a software task on a programmable processor or as a hardware task on a hardware device; wherein the reconfigurable device comprises a plurality of tiles, each tile being configurable in a variety of configurations, each of the tile configurations being capable of running a hardware task and wherein the configuring of the reconfigurable device such that at least one new hardware task can be executed changes at least one of the tiles from one configuration to another configuration; and wherein the interruption of the first set of tasks comprises, pre-empting the interrupted task and storing its associated state information for a task, restoring associated state information on the reconfigurable device when the interrupted task'"'"'s execution is resumed. - View Dependent Claims (27)
-
-
28. A non-transitory computer readable medium storing an operating system, that when executed performs a method comprising:
-
configuring the reconfigurable device so as to be capable of executing a first plurality of hardware tasks; multi-tasking a first set of tasks of an application on the platform, wherein at least two of the first set of tasks are hardware tasks being concurrently executed on the reconfigurable device; interrupting the execution of the first set of tasks; configuring the reconfigurable device such that at least one new hardware task other than one of the first plurality of hardware tasks can be executed; and multi-tasking a second set of tasks on the platform to further execute the application, wherein at least two of the second set of tasks are hardware tasks being concurrently executed on the reconfigurable device, and include the at least one new hardware task, wherein the application comprises a plurality of tasks, a number of the tasks being selectably executable as a software task on a programmable processor or as a hardware task on a hardware device; wherein the reconfigurable device comprises a plurality of tiles, each tile being configurable in a variety of configurations, each of the tile configurations being capable of running a hardware task and wherein the configuring of the reconfigurable device with the one new hardware task changes at least one of the tiles from one configuration to another configuration; and wherein the reconfigurable device comprises a communication network for providing communication between the tiles, and during the configuring of the reconfigurable device with the one new hardware task, the communication network remains fixed.
-
Specification