This collaborated research effort attempts to develop a methodology for efficiently exploring design options and to provide a means for assessing changes to existing designs in the embedded system development process.
The research proposed performs design exploration at the system level. At this level, a system is specified as a collection of task graphs and an implementation is described by an interconnection of hardware components and an assignment of processes to the hardware components. The overall approach is based on identifying the ``best'' mapping of a given system specification to a given set of hardware and software components. Though the problem shares some similarities with the hardware synthesis problem, many different issues need to be addressed in order for this approach to be effective. The following list identifies several innovations that will be produced as a result of this research:
Our approach to performing hardware/software partitioning can be summarized as follows. Initially, we obtain a small set of alternatives which can be either extracted from the initial population of an evolutionary algorithm (EA) or which can be given by the designer. The designer then qualitatively ranks these alternatives. Imprecisely Specified, Multiple Attribute Utility Theory (ISMAUT) can then be used to define a set of designer's preferences which are stored into a file. (The reader is referred to [3], for details on ISMAUT.)
The EA works in a conventional manner of using genetic operators to generate new potential solutions. ISMAUT returns the dominant solutions (i.e., solutions which are at least as good as any other solutions) which the EA uses to determine which individuals survive. This process continues until a satisfactory solution has been found or a fixed number of generations have been produced and evaluated. We have implemented this approach as a software package called EvoC (Evolutionary Codesign).
For the partitioning problem, individuals in the search space are design alternatives. The data structure for each individual encodes all of the relevant parameters needed to construct the alternative (processor type, task assignments to resources, etc.)
The EA terminates after a fixed number of generations (N) have been produced and evaluated or earlier if an acceptable assignment has been found. The EA algorithm is implemented as follows:
We use the preference relationship discussed in [4] to assign fitness to each alternative as follows. Using ISMAUT, all preferred alternatives are identified, assigned rank 1, and then removed from further contention. A new set of preferred alternatives can then be found, ranked 2, and so on until all alternatives have been ranked. Note that any alternatives which violate constraints (e.g., failure to meet a deadline) will not be preferred and thus ISMAUT will assign these a high numerical rank. Tournament selection is used to select alternatives for the reproduction in the next generation. Specifically, two distinct candidate alternatives are randomly selected from the current population and three additional distinct alternatives are randomly selected as a comparison set. If one candidate has a lower ranking than some alternative in the comparison set, and the other candidate does not, then the latter is selected for reproduction. If neither (or both) candidates have a lower ranking than some alternative in the comparison set, then a candidate is randomly chosen.
The interested reader can find more information on evolutionary algorithms in [5].
Last updated by Sharon Hu
10 July 1998.