Changes between Version 5 and Version 6 of DsxDocumentation


Ignore:
Timestamp:
Jan 27, 2008, 9:31:23 PM (16 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DsxDocumentation

    v5 v6  
    2626 * Each task in the TCG can be implemented as a ''software task'' (software running on an embedded processor), or can be implemented as an ''hardware task'', (running as a dedicated hardware coprocessor).
    2727 * DSX allows the programmer to use unprotected shared memory spaces, but the prefered inter-tasks communication mechanism use the MWMR middleware. The MWMR (Multi-Writer, Multi-Reader) channels, are implemented as software FIFOs and can be shared by ''software tasks'', and by ''hardware tasks.
    28 * DSX provides classical synchronization mechanisms such as barriers and locks, but inter-task synchronisation is mainly done through the data availability in the MWMR channels.
     28 * DSX provides classical synchronization mechanisms such as barriers and locks, but inter-task synchronisation is mainly done through the data availability in the MWMR channels.
    2929 * The target hardware architecture is a shared memory multi-processor system on chip (MP-SoC) using the SoCLib library of IP cores. But - in order to validate the multi-threaded software application - DSX is able to generate an executable binary code for a standard POSIX workstation.
    3030 * DSX supports the POSIX compliant [https://www-asim.lip6.fr/trac/mutekh Mutek]  OS kernel for embedded MPSoCs
     
    8383== C)  Defining the software application ==
    8484
     85This chapter describes the DSX/L constructs used to define the Task & Communication Graph structure.
     86The TCG is a bipartite graph: the two types of nodes are the tasks and the communication channels.
     87The following figure describes the TCG corresponding to an MJPEG decoder application. The two TG & RAMDAC tasks will be implemented as hardware coprocessors : the TG component implements a wire-less receiver, and the RAMDAC component is a graphic display controller. The 5 other tasks can be implemented as ''software tasks'' or 
     88as ''hardware tasks''. In this example, all MWMR communication channels have one single producer, and one
     89single consumer, which is frequent for stream oriented multi-media applications.
     90
     91=== C1) Task Model definition ===
     92
     93As a software application can instanciate several instances of the same task, we must distinguish the task, and the task model. A task model defines the code associated to the task, and the task interface (corresponding to the system resources used by the task : MWMR communications channels, synchronization barriers, locks, and memspaces).
     94{{{
     95Task_model = Task( 'model_name',
     96                    infifos = [ 'inport_name', ... ] ,
     97                    outfifos = [ 'outport_name', ... ] ,
     98                    locks = [ 'lock_name', ... ] ,
     99                    barriers = [ 'barrier_name', ... ] ,
     100                    memspaces = [ 'memspace_name', ... ] ,
     101                    signals = [ 'signal_name', ... ] ,
     102                    impls = [ SwTask( 'func', stack_size = 1024 , sources = [ 'func.c' ] )
     103}}}   
     104I a task does not use a given type of resource, the corresponding parameter can be skipped.
     105
     106=== C2) MWMR communication channel definition ===
     107
     108=== C3) Synchronization barrier definition ===
     109
     110=== C4) Synchronization lock definition ===
     111
     112=== C5) Signal definition ===
     113
     114=== C6) Task instanciation ===
    85115== D)  Defining the hardware architecture ==
    86116