Changes between Version 16 and Version 17 of mapping_info
- Timestamp:
- Oct 28, 2014, 11:34:55 AM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
mapping_info
v16 v17 80 80 || p || physical memory bank size (bytes) || 81 81 82 The physical global processor index will be: ( ( x << y_width ) + y ) << p_width ) + p82 The global processor index is : ( ( x << y_width ) + y ) << p_width ) + p 83 83 84 84 === 3. Physical memory bank === … … 137 137 138 138 The supported values for the ''mode'' argument, and for the ''vtype'' arguments are defined in the [source:soft/giet_vm/giet_python/mapping.py mapping.py] file. 139 The ''x'', ''y'', and ''pseg'' arguments define actually the mapping. 139 140 The (''x'', ''y'', ''pseg')' arguments define actually the vseg placement. 140 141 141 142 === 1. Boot vsegs === 142 143 143 There is 4 'vsegs for the GIET_VM bootloader:144 There is 4 global vsegs for the GIET_VM bootloader: 144 145 * The '''seg_boot_mapping''' vseg contains the C binary structure defining the mapping. It is loaded from disk by the boot-loader. 145 146 * The '''seg_boot_code''' vseg contains the boot-loader code. It is loaded from disk by the preloader. … … 150 151 === 2. Kernel vsegs === 151 152 152 There is six types of vsegs for the GIET_VM kernel, but some vsegs are replicated in all clusters, to improve locality and minimize contention, as explained below:153 There is six types of global vsegs for the GIET_VM kernel, but some vsegs are replicated in all clusters, to improve locality and minimize contention, as explained below: 153 154 * The '''seg_kernel_ptab_x_y''' vseg has type PTAB. It contains the page tables for all vspaces (one page table per vspace). There is one such vseg in each cluster (one set of page tables per cluster). Each PTAB vseg is mapped in one big physical page. 154 155 * The '''seg_kernel_code''' & '''seg_kernel_init''' have type ELF. They contain the kernel code. These two vsegs must be mapped in one big physical page. They are replicated in each cluster. The ''local'' attribute must be set, because the same virtual address will be mapped on different physical address depending on the cluster. … … 168 169 169 170 There is several types of user vseg 170 * The '''code''' vseg can be optionallyreplicated in all clusters.171 * The '''code''' vseg can be (optionally) replicated in all clusters. 171 172 * The '''data''' vseg is not replicated. It must contain the ''start_vector'' defining the entry points of the application tasks. 172 173 * It must exist as many '''stack'''' vseg as the number of tasks. 173 * One or several '''heap''' vseg(s), can be used by the mallocuser library.174 * One or several '''mwmr''' vseg(s) 174 * One or several '''heap''' vseg(s), can be used by the ''malloc'' user library. 175 * One or several '''mwmr''' vseg(s) can be used by the ''mwmr'' user library. 175 176 176 177 === 1. create the vspace === … … 178 179 The '''mapping.addvspace( )''' construct define a vspace. It has the following arguments: 179 180 || name || vspace name == application name || 180 || startname || name of 181 || startname || name of vseg containing the start_vector || 181 182 182 183 === 2. vseg mapping === … … 198 199 199 200 The supported values for the ''mode'' argument, and for the ''vtype'' arguments are defined in the [source:soft/giet_vm/giet_python/mapping.py mapping.py] file. 200 The ''x'', ''y'', and ''pseg'' arguments define actually the mapping. 201 202 The (''x'', ''y'', ''pseg')' arguments define actually the vseg placement. 201 203 202 204 === 3. task mapping === … … 209 211 || y || destination cluster Y coordinate || 210 212 || lpid || destination processor local index || 211 || stackname || name of vseg containing stack ||212 || heapname || name of vseg containing heap ||213 || stackname || name of vseg containing the task stack || 214 || heapname || name of vseg containing the task heap || 213 215 || startid || index in start vector (defining the task entry point virtual address) || 214 216