Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems
First Claim
1. A method for designing the architecture of an embedded system, comprising:
- (a) a pre-processing phase comprising the steps of;
(1) parsing one or more task graphs, one or more system/task constraints, and a resource library for the embedded system, wherein the embedded system has two or more instances of at least one task graph; and
(2) generating an association array for the task graphs, wherein the association array stores a limited amount of information for each instance of a task graph of the embedded system to avoid replication of a full description for each task graph having two or more instances and its associated parameters; and
(b) a synthesis phase, following the pre-processing phase, comprising the step of allocating one or more groups of one or more tasks in the tasks graphs to one or more processing elements (PEs) in the resource library and allocating one or more edges in the tasks graphs to one or more communication links in the resource library, based on performance evaluation of one or more possible allocations for each of the groups and edges in light of the system/task constraints, wherein the performance evaluation uses the association array.
3 Assignments
0 Petitions
Accused Products
Abstract
Hardware-software co-synthesis is the process of partitioning an embedded system specification into hardware and software modules to meet performance, power, and cost goals. Embedded systems are generally specified in terms of a set of acyclic task graphs. According to one embodiment of the present invention, a co-synthesis algorithm, called COSYN, starts with periodic task graphs with real-time constraints and produces a low-cost heterogeneous distributed embedded system architecture meeting these constraints. The algorithm has the following features: 1) it allows the use of multiple types of processing elements (PEs) and inter-PE communication links, where the links can take various forms (point-to-point, bus, local area network, etc.), 2) it supports both concurrent and sequential modes of communication and computation, 3) it employs a combination of preemptive and non-preemptive scheduling, 4) it introduces the concept of an association array to tackle the problem of multi-rate systems (which are commonly found in multimedia applications), 5) it uses a static scheduler based on deadline-based priority levels for accurate performance estimation of a co-synthesis solution, 6) it uses a new task clustering technique which takes the changing nature of the critical path in the task graph into account, 7) it supports pipelining of task graphs to derive a cost-efficient architecture, 8) it supports a mix of various technologies, such as 5 V CMOS, 3.3 V CMOS, 2.7 V CMOS, ECL, etc., to meet embedded system constraints and minimize power dissipation, and 9) if desired, it also optimizes the architecture for power consumption.
143 Citations
38 Claims
-
1. A method for designing the architecture of an embedded system, comprising:
-
(a) a pre-processing phase comprising the steps of; (1) parsing one or more task graphs, one or more system/task constraints, and a resource library for the embedded system, wherein the embedded system has two or more instances of at least one task graph; and (2) generating an association array for the task graphs, wherein the association array stores a limited amount of information for each instance of a task graph of the embedded system to avoid replication of a full description for each task graph having two or more instances and its associated parameters; and (b) a synthesis phase, following the pre-processing phase, comprising the step of allocating one or more groups of one or more tasks in the tasks graphs to one or more processing elements (PEs) in the resource library and allocating one or more edges in the tasks graphs to one or more communication links in the resource library, based on performance evaluation of one or more possible allocations for each of the groups and edges in light of the system/task constraints, wherein the performance evaluation uses the association array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for designing the architecture of an embedded system, comprising:
-
(a) a pre-processing phase comprising the steps of; (1) parsing one or more task graphs, one or more system/task constraints, and a resource library for the embedded system; and (2) defining a hyperperiod for the embedded system, wherein the hyperperiod comprises hyperperiod spill to account for one or more task graphs that do not complete within the hyperperiod, wherein the hyperperiod spill is allocated at the beginning of the hyperperiod; and (b) a synthesis phase, following the pre-processing phase, comprising the step of allocating one or more groups of one or more tasks in the tasks graphs to one or more processing elements (PEs) in the resource library and allocating one or more edges in the tasks graphs to one or more communication links in the resource library, based on performance evaluation of one or more possible allocations for each of the groups and edges in light of the system/task constraints, wherein the performance evaluation is based on the hyperperiod with the hyperperiod spill. - View Dependent Claims (11)
-
-
12. A method for designing the architecture of an embedded system, comprising:
-
(a) a pre-processing phase comprising the step of parsing one or more task graphs, one or more system/task constraints, and a resource library for the embedded system; and (b) a synthesis phase, following the pre-processing phase, comprising the steps of; (1) generating an allocation array for each group of one or more tasks in the tasks graphs and each edge between groups in the task graphs, wherein each allocation array comprises one or more different possible allocations for the groups and edges arranged based on a selected cost function; and (2) allocating each group to a processing element (PE) in the resource library and each edge to a communication link in the resource library, by evaluating performance of the one or more possible allocations in the corresponding allocation array in light of the system/task constraints. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for designing the architecture of an embedded system, comprising:
-
(a) a pre-processing phase comprising the step of parsing one or more task graphs, one or more system/task constraints, and a resource library for the embedded system; and (b) a synthesis phase, following the pre-processing phase, comprising the steps of; (1) selecting possible allocations for each group of one or more tasks in the task graphs and each edge in the task graphs; (2) performing scheduling for each selected allocation, wherein the scheduling for at least one selected allocation uses a combination of preemptive and non-preemptive scheduling taking into account a preemption overhead corresponding to one or more types of operating system overheads associated with the selected allocation; (3) evaluating performance of each selected allocation based on results of the scheduling in light of the system/task constraints; and (4) allocating each group to a processing element (PE) in the resource library and each edge to a communication link in the resource library, based on results of the performance evaluation. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
Specification