10 | | It supports the hardware software codesign approach, and allows the designer to define successively : |
11 | | * the hardware architecture : number of processors, number of memory banks, peripherals, etc. |
12 | | * the software application structure : Task & Communication Graph |
| 10 | It supports the hardware software codesign approach, allowing the designer to define successively : |
| 11 | * the hardware architecture : number of processors, number of memory banks, etc. |
| 12 | * the software application structure : number of tasks and communication channels |
34 | | |
35 | | === B1) System Resources Layer === |
36 | | |
37 | | We want to map the multi-threaded software application on several hardware platforms, |
38 | | without any modification of the task code. One important platform is a POSIX compliant |
39 | | workstation, as we want to validate the multi-threaded software application on a |
40 | | workstation before starting the mapping on the MPSoC architecture. |
41 | | |
42 | | DSX defines a '''system Ressource Layer''' API (SRL), that is an abstraction of the synchronization |
43 | | and communication services provided by the various target platforms. The SRL API helps |
44 | | the programmer to distinguish the embedded application code from the system code used for |
45 | | inter-tasks communications and synchronizations. |
46 | | |
47 | | Three platforms are supported : |
48 | | * Any Linux (or Unix) workstation supporting the POSIX threads, |
49 | | * MP-SoC architecture using the MUTEK/D operation system, |
50 | | * MP-SoC architecture using the MUTEK/S operating system, |
51 | | |
52 | | MUTEK/D is an embedded, POSIX compliant, distributed, operating system for MP-SoCs, |
53 | | while MUTEK/S is an optimized version: the performances are improved, and the memory |
54 | | footprint is reduced, at the cost of loosing the POSIX compatibility. |
55 | | |
56 | | === B2) DSX/L language === |
69 | | == D) Describing the hardware architecture == |
| 44 | We want to map the multi-threaded software application on several hardware platforms, |
| 45 | without any modification of the task code. One important platform is a POSIX compliant |
| 46 | workstation, as we want to validate the multi-threaded software application on a |
| 47 | workstation before starting the mapping on the MPSoC architecture. |
| 48 | |
| 49 | DSX defines a '''system Ressource Layer''' API (SRL), that is an abstraction of the synchronization |
| 50 | and communication services provided by the various target platforms. The SRL API helps |
| 51 | the C programmer to distinguish the embedded application code from the system code used for |
| 52 | inter-tasks communications and synchronizations. |
| 53 | |
| 54 | * Communications : blocking & non-blocking Read & Write access to a MWMR channel |
| 55 | {{{ |
| 56 | void srl_mwmr_read( srl_mwmr_t, void * , size_t ) ; |
| 57 | void srl_mwmr_write( srl_mwmr_t, void * , size_t ) ; |
| 58 | |
| 59 | size_t srl_mwmr_try_read( srl_mwmr_t, void * , size_t ) ; |
| 60 | size_t srl_mwmr_try_write( srl_mwmr_t, void * , size_t ) ; |
| 61 | |
| 62 | void srl_mwmr_flush( srl_mwmr_t ) ; |
| 63 | }}} |
| 64 | * Synchronization barrier |
| 65 | {{{ |
| 66 | void srl_barrier_wait( srl_barrier_t ) ; |
| 67 | }}} |
| 68 | * taking and releasing a lock |
| 69 | {{{ |
| 70 | srl_loock_lock( srl_lock_t ) ; |
| 71 | srl_lock_unlock( srl_lock_t ) ; |
| 72 | }}} |
| 73 | * accessing a shared memory space (address and size) |
| 74 | {{{ |
| 75 | void* srl_memspace_addr( srl_memspace_t ) ; |
| 76 | size_t srl_memspace_size( srl_memspace_t ) ; |
| 77 | }}} |
| 78 | |
| 79 | Three platforms are presently supported : |
| 80 | * Any Linux (or Unix) workstation supporting the POSIX threads, |
| 81 | * MP-SoC architecture using the MUTEK/D operation system, |
| 82 | * MP-SoC architecture using the MUTEK/S operating system, |
| 83 | |
| 84 | MUTEK/D is an embedded, POSIX compliant, distributed, operating system for MP-SoCs, |
| 85 | while MUTEK/S is an optimized version: the performances are improved, and the memory |
| 86 | footprint is reduced, at the cost of loosing the POSIX compatibility. |
| 87 | |
| 88 | == C) Defining the software application == |
| 89 | |
| 90 | == D) Defining the hardware architecture == |