Changes between Version 8 and Version 9 of DsxDocumentation


Ignore:
Timestamp:
Jan 28, 2008, 12:30:39 PM (16 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DsxDocumentation

    v8 v9  
    2525 * The software tasks are supposed to be written in C or C++, but - for portability reasons - the tasks must use an abstract '''System Resource Layer (SRL)''' API to access the communication and synchronizations resources.
    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).
    27  * 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''.
     27 * 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)communication channels, are implemented as software FIFOs and can be shared by ''software tasks'', and by ''hardware tasks''.
    2828 * 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.
     
    8383== C)  Defining the software application ==
    8484
    85 This chapter describes the DSX/L syntax used to define the Task & Communication Graph structure.
     85This section describes the DSX/L syntax used to define the Task & Communication Graph structure.
    8686The TCG is a bipartite graph: the two types of nodes are the tasks and the communication channels.
    8787
     
    165165In the mapping section of the DSX/L program, the lock can be explicitely placed in the memory space.
    166166
    167 === C6) Signal definition ===
    168 
    169 The DSX signals are used to signal a special event that is not synchronized with the data. The signal is transmitted
    170 to all registered tasks. The tasks are interrupted to execute the corresponding signal handler. Signals are mainlly
    171 used to implement soft real time constraints, a task can receive a signal, but cannot send a signal.
    172 {{{
    173 My_Signal = Signal( 'signal_name' )
    174 }}}
    175 There is nothing to place in the mapping section.
    176 
    177 === C7) Task instanciation ===
     167=== C6) Task instanciation ===
    178168
    179169A task is an instance of a task model. The constructor arguments are the task name ''task_name'', the task model
    180 ''Task_Model'' (created by the TaskModel() function), a list of resources (MWMR channels, synchronization barriers,
    181 locks or memspaces), and the list of the signals that can be received by the task . DSX performs type checking between the port name and the associated resource.
     170''Task_Model'' (created by the TaskModel() function), and a list of resources (MWMR channels, synchronization barriers, locks or memspaces), that must be associated to the task ports. DSX performs type checking between the port name and the associated resource.
    182171{{{
    183172My_Task = Task( 'task_name',
    184173                         Task_Model ,
    185                          { 'port_name' : My_Channel, 'barrier_name' : My_Barrier, ... } ,
    186                          { 'signal_name : My_Signal, ... } )
     174                         portmap = { 'port_name' : My_Channel, 'barrier_name' : My_Barrier, ... } )
    187175}}}
    188176In the mapping section of the DSX/L program, 4 software objects must be placed :
     
    192180 1. ''run'' : processor running the task
    193181
    194 A task that has real time constraints must be instanciated by a special constructor.
    195 There is two extra arguments : ''cond_activate'' is the signal definig the activation condition, and ''cond_deadline''
    196 is the signal defining the dead_line condition.
    197 {{{
    198 My_Rt_Task = RtTask( 'task_name',
    199                          Task_Model ,
    200                          { 'port_name' : My_Channel, 'barrier_name' : My_Barrier, ... } ,
    201                          { 'signal_name : My_Signal, ... } ,
    202                          cond_activate ,
    203                          cond_deadline )
     182=== C8) TCG definition ===
     183
     184The Task and Communication Graph must be defined : 
     185{{{
     186My_Tcg = Tcg(
     187             Task(  'task_name1,
     188                     Task_Model1,
     189                     portmap = { ’in’:input, ’out’:output } ),
     190             Task(  'task2',
     191                     Task_Model2,
     192                     portmap = { ’in’:input2, ’out’:output2 } )
     193              ... )
    204194}}}
    205195
    206196== D)  Defining the hardware architecture ==
    207197
     198This section describes the DSX/L syntax used to define the MP-SoC hardware architecture,
     199using the hardware components defined in the SoCLib library.
     200
     201=== D1) SoCLib components definition ===
     202
     203In the present version of DSX, each hardware component must be described by a PYTHON
     204class that defines the component interface, and the component parameters. The instance
     205name is mandatory, but all other parameters have default values and can be skipped:
     206{{{
     207# creation of a MIPS R3000 processor core
     208MY_proc0 = Mips( 'proc0' )
     209
     210# creation of a generic cache
     211}}}
     212
     213=== D2) Connecting the components ===
     214
     215=== D3) Address space segmentation ===
     216
     217=== D4) Hardware architecture definition ===
     218
     219=== D5) Mapping table ===
     220
     221=== D6) Generic platforms ===
     222
    208223== E)  Mapping the software on the hardware ==
    209224
     225This section describes the DSX/L syntax used to map the software objects on the hardware architecture.
     226
     227=== E1) Mapper declaration ===
     228
     229=== E2) Mapper definition ===
     230
    210231== F)  Code generation ==
    211232