Simulation Model Generator
The premadona tool allows to generate simulation models from XML specifications of NoC-based MPSoC systems. These XML specifications include a number of applications (in the form of SDF, CSDF or SADF graphs), a description of the MPSoC platform and a mapping of the applications on this platform. In addition, certain settings can be specified to indicate what aspects of the system should be monitored for performance analysis or traced. The sources of the premadona tool that you can download here compile and run on Linux and assumes NoC-based MPSoC platforms without resource management. The simulator required for executing models generated by the premadona tool can be downloaded from this webpage.
The command-line syntax for the premadona tool is as follows:
premadona -n <number> -a <applist> -p <mpsocfile> -m <mapfile> [-s <settings>] [-o <modelfile>] [-l <logfile>]
The mandatory -n argument indicates the <number> of applications that will be mapped on the platform. The mandatory argument -a should refer to a space-saparated list <applist> of XML files. The number of files in this list must not be less than <number>. Each file in the <applist> describes one application. Aplications can be specified as an SDF, CSDF or SADF graph using similar XML formats as used by the sdf3 tool, see below. The mandatory -p argument denotes the XML file <mpsocfile> describing the NoC-based MPSoC platform. The final mandatory argument is -m, which specifies the XML file <mapfile> that describes how the tasks of each application are mapped onto the nodes of the NoC-based MPSoC platform.
There are three optional arguments for the premadona tool. Argument -s can be used to specify an XML file <settings> with settings for performance monitoring and tracing certain parts of the system. The -o option allows to specify the file to which the generated model is written. The default <modelfile> is model.p4r. Argument -l enables specifying the file in which the performance results obatained during the simulation are written. The default <logfile> is results.log.
The premadona uses several different XML formats to specify applications, a platform and mapping as well as monitoring and tracing settings. Click on any of the links below to obtained detailed information of the different XML formats.
- XML formats for specifying applications
- Describing NoC-based MPSoC platforms
- Specifying a mapping
- Optional specification of monitoring, tracing and other simulation settings (including an explanation of the monitored performance metrics)
The premadona tool accepts a number of applications specified according to the XML formats of the sdf3 tool. Currently, the premadona tool supports three appliocation types: SDF, CSDF and SADF graphs. It detects automatically what type of dataflow model is used. We remark that the premadona tool internally converts any SDF or CSDF graph into an SADF graph before generating the simulation model. This conversion involves losing any auto-concurrency that may have been specified in such SDF or CSDF graphs.
- SDF graphs are described according to sdf3-sdf.xsd, which is elaborately explained here. The premadona tool only considers the <applicationGraph> node of the XML specification - any information regarding the platform and mapping are to be specified in seperate XML files.
- CSDF graphs are described according to sdf3-csdf.xsd. This XML format is very similar to the one for specifying SDF graphs. The main difference is that the specification of port rates and execution times can now be sequences. Such sequences consist of a comma separated list of elements of the form Number * Value, where Number is a positive integer and Value refers to the considered rate or execution time respectively. In case Number should be 1, the part with Number * can be ommited. The total number of values in each sequence for an actor should be equal to the sequence length. Finally, we remark that the premadona tool only considers the <applicationGraph> node of the XML specification - any information regarding the platform and mapping are to be specified in seperate XML files.
- SADF graphs are specified according to the sdf3-sadf.xsd, which is elaborately explained here. The premadona tool requires however the use of two additional attributes for each profile. Attribute processor_type indicates the type of processor for which the considered profile holds. Only profiles specified for the type of processor to which the process is mapped are taken into account. Profiles for other types of processors are neglegted. The extra attribute memory_usage specifies the amount of context memory used in the involved profile.
An example set of XML files that specify a NoC-based MPSoC platform on which one fictitious application (in the form of an SADF graph) is mapped can be downloaded here. The example origimates from a master course on multiprocessor design. The example can be run by executing: premadona -n 1 -a application.xml -p platform.xml -m mapping.xml -s settings.xml followed by the command: rotalumis model.p4r.
For more information about the premadona tool, you can write an email to B.D.Theelen @ tue.nl