scd_logo.gif

The System-Level Hardware-Software-Co-Design Tool

Overview

SystemCoDesigner is a software tool for automatic design space exploration at the system level. The goal is to optimally allocate resources and bind a task graph onto these allocated resources. Hence, the underlying optimization problem is a selection and assignment problem. The input is the so called specification graph. An example is given below:

spec.gif

The blue graph is the task graph. The yellow graph is the architecture template. Dashed edges are the so called mapping edges which restricts the mapping possibilities of the tasks. In this example, there are only mapping alternatives for process CL.

As you can see, parameters are associated with the vertices in the architecture graph as well as with the mapping edges. You can define your own parameters if you like. For the evaluation, two kinds of evaluators can be used: 1) A list scheduler to determine a static schedule from the delay parameters at the mapping edges and 2) a sumevaluator that sums up all parameters with a specific name. Three predefined problem instances are included in this package. But as you will find out, there are many possibilities to configure SystemCoDesigner, including the number of objectives as well as the complexity of the optimization problems.

The designer has to specify the task graph, the architecture template (as a graph), as well as all possible bindings of the nodes in the task graph onto the resources in the architecture template. We provide the script start_generator.pl which helps to generate problem instances of arbitrary complexities. SystemCoDesigner also provides a graphical user interface, including a front end for specification of the architecture template and bindings as well as a visualization of the design space exploration and optimal implementations. The GUI is available at the SystemCoDesigner website. Moreover, a tutorial for SystemCoDesigern is available which explains many of the parameters in detail.

Download & Installation Guide

To install the SystemCoDesigner, you just have to download and unpack the binaries.

Once you have unpacked the archive, you should have obtained a folder called scd-0.1 containing these files and directories:

Buddy_license.txtFile containing license for buddy
Environment/Directory containing the runtime environment
LICENSEFile containing license for the SystemCoDesigner
READMEFile Containing a short getting started
bin/Directory containing start scripts
lib/Directory containing libraries
libexec/Directory containing executables
share/Directory containing some auxiliary programs
xerces_license.txtFile containing license for Xerces

User's Guide

Usage:
cd bin
modes_variator PARAMETER_FILE /PATH_TO/PISA_ 0.1

To generate different problem instances, please use the following command:

Usage:
cd bin
start_generator.pl GENERATOR_PARAMETER_FILE SGX_FILENAME [MODES_PARAMETER_FILE]

The generator can be used to automatically create problem graphs and additionally an appropriate standard parameter file for the SystemCoDesigner. Hence, it also copies the "specgraph.dtd" that is needed into the destination directory of the generated problem graph.

Three examples of a GENERATOR_PARAMETER_FILE can be found in "/share/generator". These are

Examples of specification graphs can be found in "/share/Examples" containing three, with the GENERATOR_PARAMETER_FILEs automatically generated graphs as well as one real world example "h264.sgx".

Parameters

Note that the parameters must be in the correct order!

This is a standard example:
seed none
max_gen 1000
coverage_gen 50
p_mutationrate 0.00408163265306122
p_compositemutationrate 0.0
p_compositecrossoverrate 0.0
p_allocationrate 1
xml_file /PATH_TO/graph.sgx
init_file none
sync_generations 1
view_sync_file /PATH_TO/quality.loc
quality_set_file /PATH_TO/quality.qsx
non_dominated_file /PATH_TO/nd.txt
no_of_evaluators 2
evaluator sum-area sumevaluator.so area NOBINDING
evaluator sum-power sumevaluator.so power
scheduler_lib listscheduler.so
decoder_lib simpledecoder.so
no_of_checkers 1
checker area objectiveboundschecker.so
upper_constraint 100
lower_constraint 50

Short explanation of the parameters:

seedSpecifies the seed for the random-number-generator.
max_genSpecifies the maximum number of generation to be evaluated.
coverageSpecifies a termination criterion. The criterion is fulfilled, if the set of non-dominated individuals of a population does not improve over the number of generations, specified by the coverage. The termination criterion can also be deactivated.
mutationrateSpecifies the used mutation rate, 1 / (#Processes + #Resources + 2) is recommended.
p_compositemutationrate and p_compositecrossoverratedeprecated and should be 0!
p_allocationrateSpecifies the rate of initially allocated resources.
xml_fileSpecifies the specification graph to explore.
init_fileSpecifies the initial population that is used to explore the specification graph.
sync_generationsSpecifies the interval (in generations) for the Qualityset-File to be written.
view_sync_file and quality_set_file and non_dominated_fileSpecifies the files for the results to be stored.
no_of_evaluatorsSpecifies the number of evaluators to follow with:
"evaluator NAME EVALUATOR OBJECTIVE ADDITIONALATTRIBUTE"
scheduler_libSpecifies the scheduler to be used if needed.
decoder_libSpecifies the used decoder.
no_of_checkersSpecifies the number of checkers to follow with:
"checker OBJETIVE objectiveboundchecker.so upper_constraint UPPER_BOUND lower_constraint LOWER_BOUND"

Contact

To learn more about SystemCoDesigner or for further questions, please contact us:
Address
Hardware-Software-Co-Design
University of Erlangen-Nuremberg
Am Weichselgarten 3
D-91058 Erlangen
Germany
email.gif

!!! Dieses Dokument stammt aus dem ETH Web-Archiv und wird nicht mehr gepflegt !!!
!!! This document is stored in the ETH Web archive and is no longer maintained !!!