Changes between Version 39 and Version 40 of mapping_info
- Timestamp:
- Sep 26, 2015, 10:38:10 AM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
mapping_info
v39 v40 23 23 * Most peripherals are ''external'' and localized in one specific I/O cluster. 24 24 * A small number of peripherals (such as the XCU interrupt controller) are ''internal'' and replicated in each cluster containing processors. 25 * The physical address 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 MSB fields (up to4 bits for each field) define the cluster coordinates.25 * The 40 bits physical address is the concatenation of 3 fields: the LSB field (32 bits) define a 4 Gbits physical address space inside a single cluster. The [X,Y] MSB fields (4 bits for each field) define the cluster coordinates. 26 26 27 27 2. It contains a description of the GIET_VM kernel software objects (called virtual segments or ''vsegs''): 28 28 * The kernel code is replicated in all clusters. Each copy is a ''vseg''. 29 * There is one page table for each user application, and this page table is replicated in each cluster. Each copy is a ''vseg''. 29 * There is one page table for each user application. All page tables are packed in one single ''vseg'', and this ''vseg'' is 30 replicated in each cluster. 30 31 * The kernel heap is distributed in all clusters. Each heap section is a ''vseg''. 31 32 * Finally there is a specific ''vseg'' for each peripheral (both internal and external), containing the peripheral addressable registers. 32 33 All these kernel ''vsegs'' being accessed by all user applications must be defined in all virtual spaces, and are mapped in all page tables. They are called ''global vsegs''. 33 34 34 3. It contains a description of the user application(s) 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. The number of tasks can depend on the target architecture. Each task must be statically placed on a given processor (p) in a given cluster(x,y). Moreover, each application defines a variable number of ''vsegs'':35 3. It contains a description of the user application(s) 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. The user threads respect the POSIX API.The number of threads can depend on the target architecture. Each thread must be statically placed on a given processor (x,y,p). Moreover, each application defines a variable number of ''vsegs'': 35 36 * The application code can be defined as a single ''vseg'', in a single cluster. It can also be replicated in all clusters, with one ''vseg'' per cluster. 36 * There is one stack for each application task. There is one ''vseg'' per stack, and each stack ''vseg'' must be placed in a specific cluster(x,y).37 * There is one stack per thread, and each stack ''vseg'' must be placed in a specific cluster(x,y). 37 38 * The data ''vseg'' contains the global (shared) variables. It is not replicated, and must be placed in a single cluster. 38 39 * The user heap can be physically distributed on all clusters and it can exist one heap ''vseg'' per cluster. … … 40 41 == __C mapping data structure__ == 41 42 42 The C binary mapping data structure isdefined 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 8 variable size arrays:43 The C binary structures used by the boot code are 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 8 variable size arrays: 43 44 44 45 || mapping_cluster_t || a cluster || contains psegs, processors, peripherals and coprocessors || … … 51 52 || mapping_periph_t || a peripheral || associated to a specific pseg || 52 53 53 The ''map.bin'' file must be stored on diskand will be loaded by the GIET_VM bootloader in the ''seg_boot_mapping'' memory segment.54 The ''map.bin'' file is automatically build by the ''genmap'' tool from the python scripts. It must be stored on disk in the file system root directory and will be loaded by the GIET_VM bootloader in the ''seg_boot_mapping'' memory segment. 54 55 55 56 == __Python mapping description__ ==