We are interested in optimizing the design of multifunction embedded systems such as multistandard audio/video codecs and multisystem phones. Such systems run a prespecified set of applications, and any "one" of the applications is selected at a run time, depending on system parameters. Our goal is to develop a methodology for the efficient design of such systems. A key observation underlying our method is that it may not be efficient to design for each application separately. This is attributed to two factors. First, considering each application in isolation can lead to application-specific decisions that do not necessarily lead to the best overall system solution. Second, these applications typically tend to have several commonalities among them, and considering applications independently may lead to inconsistent mappings of common tasks in different applications. Our approach is to optimize jointly across the set of applications while ensuring that each application itself meets its timing constraints. Based on these guiding principles, we formulate, as a codesign problem, the design and synthesis of an efficient hardware-software implementation for a multifunction embedded system. The first step in our methodology is to identify nodes that represent similar functionality across different applications. Such "common" nodes are characterized by several metrics such as their repetitions, urgency, concurrency, and performance/area tradeoff. These metrics are quantified and used by a hardware/software partitioning tool to influence hardware/software mapping decisions. The idea behind this is to bias common tasks toward the same resource as far as possible while also considering preferences and timing constraints local to each application. Further, relative criticality of applications is also considered, and the mapping decisions in more critical applications are allowed to influence those in less critical applications. We demonstrate how this is achieved by modifying an existing partitioning algorithm (GCLP) used to partition single-function systems. Our modified algorithm considers global preferences across the application set as well as the preference of each individual application to generate an efficient overall solution while ensuring that timing constraints of each application are met. The overall result of the system-level partitioning process is 1) a hardware or software mapping and 2) a schedule for execution for each node within the application set. On an example set consisting of three video applications, we show that the solution obtained by the use of our method is 38% smaller than that obtained when each application is considered independently.
[1]
Ing-Jer Huang,et al.
Generating Instruction Sets And Microarchitectures From Applications
,
1994,
IEEE/ACM International Conference on Computer-Aided Design.
[2]
Miodrag Potkonjak,et al.
System-level design guidance using algorithm properties
,
1994,
Proceedings of 1994 IEEE Workshop on VLSI Signal Processing.
[3]
Hugo De Man,et al.
Instruction set definition and instruction selection for ASIPs
,
1994,
Proceedings of 7th International Symposium on High-Level Synthesis.
[4]
Masaharu Imai,et al.
PEAS-I: A Hardware/Software Codesign System for ASIP Development
,
1994
.
[5]
Miodrag Potkonjak,et al.
Fast prototyping of datapath-intensive architectures
,
1991,
IEEE Design & Test of Computers.
[6]
Pierre G. Paulin,et al.
DSP design tool requirements for embedded systems: A telecommunications industrial perspective
,
1995,
J. VLSI Signal Process..
[7]
Masaharu Imai,et al.
A hardware/software partitioning algorithm for designing pipelined ASIPs with least gate counts
,
1996,
DAC '96.
[8]
Fadi J. Kurdahi,et al.
Partitioning by regularity extraction
,
1992,
[1992] Proceedings 29th ACM/IEEE Design Automation Conference.
[9]
Asawaree Kalavade,et al.
A tool for performance estimation of networked embedded end-systems
,
1998,
Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).
[10]
Edward A. Lee,et al.
A hardware-software codesign methodology for DSP applications
,
1993,
IEEE Design & Test of Computers.
[11]
Edward A. Lee,et al.
System-level codesign of mixed hardware-software systems
,
1995
.
[12]
Miodrag Potkonjak,et al.
Cost optimization in ASIC implementation of periodic hard-real time systems using behavioral synthesis techniques
,
1995,
Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).
[13]
Edward A. Lee,et al.
The Extended Partitioning Problem: Hardware/Software Mapping, Scheduling, and Implementation-bin Selection
,
1997,
Des. Autom. Embed. Syst..
[14]
Christos A. Papachristou,et al.
Synthesis of reusable DSP cores based on multiple behaviors
,
1996,
ICCAD 1996.
[15]
Edward A. Lee,et al.
Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems
,
2001,
Int. J. Comput. Simul..