Changes between Initial Version and Version 1 of mapping_info


Ignore:
Timestamp:
Oct 26, 2014, 10:03:46 AM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • mapping_info

    v1 v1  
     1= GIET_VM / Mapping =
     2
     3
     4
     5
     6The C binary mapping data structure, is used by the GIET_VM to map one or several multi-threaded user applications on a
     7generic multi-processors, multi-clusters architecture. This C binary structure is generated by the ''genmap'' tool from a source description
     8using PYTHON.
     9
     10This mapping is statically build by the GIET-VM bootloader in the boot phase:
     11 1.  It contains a description of the target clusterized hardware architecture.The number of cluster is variable (can be one). The number of processors per cluster is variable (can be one). The number of peripherals and coprocessor per cluster is variable. The number of physical memory banks per cluster is variable.
     12 2. It contains a description of the user applications (an user application is called a ''vspace'') to be launched on the platform. The number of parallel ''tasks'' per application is variable (can be one). Multi-Writer/Multi-Reader communication channels between tasks are supported. Each vspace contains a variable number of virtual segments (called ''vsegs''). The number of vspace can be one.
     13 3. It contains the mapping directives: The tasks are statically allocated to processors. The various software objects (user and kernel code segments, tasks stacks, tasks heaps, communication channels, etc.) are called ''vobjs'', and are statically placed on the distributed physical memory banks (called ''psegs''),  using the paged virtual memory.
     14
     15The C binary mapping data structure is defined in the [source:soft/giet_vm/giet_xml/mapping_info.h mapping_info.h] file, and is organised as the concatenation of a fixed size header, and 11 variable size arrays:
     16 * mapping_cluster_t  cluster[] 
     17 * mapping_pseg_t     pseg[]       
     18 * mapping_vspace_t   vspace[] 
     19 * mapping_vseg_t     vseg[]     
     20 * mapping_vobj_t     vobj[]   
     21 * mapping_task_t     task[] 
     22 * mapping_proc_t     proc[] 
     23 * mapping_irq_t      irq[]   
     24 * mapping_coproc_t   coproc[]
     25 * mapping_cp_port_t  cp_port[]
     26 * mapping_periph_t   periph[]
     27It is intended to be stored in memory in the seg_boot_mapping segment.