Changes between Version 4 and Version 5 of mapping_info
- Timestamp:
- Oct 26, 2014, 12:46:06 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
mapping_info
v4 v5 11 11 To control this mapping, the system designer must define a mapping, as described below. 12 12 13 == C mapping data structure==13 == __C mapping data structure__ == 14 14 15 15 A dedicated C binary data structure, is used by the GIET_VM bootloader to map one or several multi-threaded user applications on a generic, shared address space multi-processors, multi-clusters architecture. The next section describes how this this C binary structure can be generated by the ''genmap'' tool from a source description using the PYTHON language. We describe in this section this C structure. … … 17 17 The C mapping data structure contains the following informations: 18 18 19 1. It contains a description of the target, clusterized, hardware architecture, with the following constraints: The clusters are organised in a 2D mesh topology, and the number of clusters is variable (can be one). The number of processors per cluster is variable (can be one). The number of physical memory banks is variable (up to one physical memory bank per cluster. Most peripherals are ''external'' and localized in one specific I/O cluster. 20 The physical address width is between 32 and 48 bits, and is the concatenation of 3 fields: the LSB field (32 bits) define a 4 Gbits physical address space inside a single cluster. The X and Y fields (up to 8 bits for each field) define the cluster coordinate. 19 1. It contains a description of the target, clusterized, hardware architecture, with the following constraints: The clusters are organised in a 2D mesh topology, and the number of clusters is variable (can be one). The number of processors per cluster is variable (can be one). The number of physical memory banks is variable (up to one physical memory bank per cluster. Most peripherals are ''external'' and localized in one specific I/O cluster. The physical address width is between 32 and 48 bits, and is the concatenation of 3 fields: the LSB field (32 bits) define a 4 Gbits physical address space inside a single cluster. The X and Y fields (up to 8 bits for each field) define the cluster coordinate. 21 20 22 21 2. It contains a description of the user applications to be launched on the platform. An user application is characterized by a a virtual address space, called a ''vspace''. An user application can be multi-threaded, and the number of parallel tasks sharing the same address space in a given application is variable (can be one). The GIET_VM provide a specific Multi-Writer/Multi-Reader communication middleware for send/receive inter-tasks communication. Each vspace contains a variable number of virtual segments, called ''vsegs''. The number of simultaneously mapped vspaces on a given architecture is variable (can be one). … … 39 38 The ''map.bin'' file must be stored on disk and will be loaded in memory by the GIET_VM bootloader in the ''seg_boot_mapping'' segment. 40 39 41 == Python Mapping General=40 == __Python Mapping General__ == 42 41 43 42 A specific mapping requires at least two python files: … … 51 50 To define an architecture, you must use the following constructors: 52 51 53 === C lass Mapping ===52 === Construct mapping === 54 53 55 54 The Mapping constructor build a mapping object and define the target architecture general parameters: … … 73 72 || ram_size || physical memory bank size in one cluster (bytes) || 74 73 75 === Class Cluster === 74 === Construct cluster_io peripherals === 75 76 The mapping.addPeriph( ) define the non replicated peripherals available in cluster_io. It has the following arguments 77 || name || peripheral name || 78 || base || peripheral segment physical base address || 79 || size || peripheral segment size || 80 || ptype || Peripheral type || 81 || subtype || Peripheral subtype || 82 || channels || number of channels for multi-channels peripherals || 83 || arg || optionnal argument depending on peripheral type || 84 85 The Peripheral types are defined in the [source:soft/giet_vm/giet_xml/mapping_info.h mapping_info.h] and [source:soft/giet_vm/giet_python/mapping.py mapping.py] files. 86 76 87 77 88 == Application description : appli.py ===