Changes between Version 12 and Version 13 of user_applications


Ignore:
Timestamp:
Nov 20, 2015, 4:24:38 PM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • user_applications

    v12 v13  
    169169 * The N-2 compute() threads running on all other processors are  continuously reading token  from the local input channel, and writing the same token to the local output channel, after a random delay emulating a variable processing time. They use blocking access functions.
    170170
    171 It require one TTY terminal shared by all threads.
     171It requires one TTY terminal shared by all threads.
    172172 
    173173The source code can be found [source:soft/giet_vm/applications/router/router.c here], and the mapping is defined [source:soft/giet_vm/applications/router/router.py here].
     174
     175== __mjpeg__ ==
     176
     177This multi-threaded application makes the decompression of a MJPEG bit-stream contained in a file.
     178It illustrates the "pipe-line" parallelism, and the message passing programming model, on top of the POSIX threads API, and the MWMR channels API.
     179The application is described as a TCG (Task and Communication Graph), and all communications between threads uses MWMR channels.
     180Each pipeline decompress one complete image, and there is one pipe-line per cluster.
     181It uses the chained buffer DMA component to display the stream of decompressed images on the graphic display.
     182It contains 6 types of threads (plus the "main" thread, that makes initialisation), and 7 types of MWMR communication channels:
     183 * the TG thread dispatch the bit-stream to the pipeline. It is only mapped in cluster[0,0].
     184 * the 5 threads implementing the pipeline (DEMUX, VLD, IQZZ, IDCT, LIBU) are replicated in all clusters.
     185 * the 7 MWMR channels are replicated in all clusters.
     186
     187The hardware constraints are the following
     188 * The number of clusters cannot be larger than 16*16.
     189 * The number of processors per cluster is not constrained.
     190 * The frame buffer size must fit the decompressed images size.
     191 * It uses one TTY terminal shared by all tasks.
     192
     193The source code can be found [source:soft/giet_vm/applications/mjpeg/mjpeg.c here], and the mapping is defined [source:soft/giet_vm/applications/mjpeg/mjpeg.py here].