Changes between Version 25 and Version 26 of arch_info
- Timestamp:
- Jun 21, 2018, 9:52:15 AM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
arch_info
v25 v26 6 6 7 7 All relevant parameters describing the clustered multi-core architecture must be defined in the binary '''arch_info.bin''' file. 8 This binary file is exploited by the ALMOS-MKH boot-loader to configure ALMOS-MK . For each target architecture, there is a specific '''arch_info.py''' python script, used to generate this '''arch_info.bin''' file.8 This binary file is exploited by the ALMOS-MKH boot-loader to configure ALMOS-MKH. For each target architecture, there is a specific '''arch_info.py''' python script, used to generate this '''arch_info.bin''' file. 9 9 10 10 == __1) Cluster and cores identification__ == … … 12 12 === 1.1) Cluster identification === 13 13 14 To identify a cluster in the clustered architecture, ALMOS-MKH uses a unique cluster identifier '''cxy'''. ALMOS-MK does not make any14 To identify a cluster in the clustered architecture, ALMOS-MKH uses a unique cluster identifier '''cxy'''. ALMOS-MKH does not make any 15 15 assumption on the clusters topology, but makes the assumption that the '''cxy''' binary value can be directly concatenated to the local physical address (address inside a cluster) to build a global physical address. Warning: The cluster identifier '''cxy''' is NOT a continuous index, and therefore , it cannot be used to index a clusters array. 16 16 17 17 The size of the local physical address space (inside a cluster) is defined by a global configuration parameter in the '''kernel_config.h''' file, that is the number of bits in a local physical address. The value of this parameter is 32 in architectures using 32 bits cores, but it can be larger in architectures using 64 bits cores. A physical address is coded on a 64 bits integer in ALMOS-MKH. 18 18 19 Note : In architectures where the clusters are organized as a 2D mesh topology, is is generally possible to derive the [x,y] cluster coordinates from the '''cxy''' cluster identifier, and ALMOS-MK can use it to optimize placement and improve locality, but this optimisation is NOT mandatory, and ALMOS-MKH supports architectures where the set of cluster is simply a linear vector of clusters.19 Note : In architectures where the clusters are organized as a 2D mesh topology, is is generally possible to derive the [x,y] cluster coordinates from the '''cxy''' cluster identifier, and ALMOS-MKH can use it to optimize placement and improve locality, but this optimisation is NOT mandatory, and ALMOS-MKH supports architectures where the set of cluster is simply a linear vector of clusters. 20 20 21 21 === 1.2) Core identification === 22 22 23 ALMOS-MK makes the assumption that each physical core contains an hardware addressable register defining a unique global identifier (called '''gid''') with the only constraint that two different cores have two different '''gid'''.23 ALMOS-MKH makes the assumption that each physical core contains an hardware addressable register defining a unique global identifier (called '''gid''') with the only constraint that two different cores have two different '''gid'''. 24 24 25 To identify a specific core in the clustered architecture, ALMOS-MK does not use directly this physical '''gid''', but uses a composite index '''[cxy,lid]''', where '''cxy''' is the cluster identifier, and '''lid''' is a local core index. This '''lid''' index is a continuous index in [0,N-1], where N can depends on the cluster, but cannot be larger than the global parameter CONFIG_MAX_CORE_PER_CLUSTER_NR.25 To identify a specific core in the clustered architecture, ALMOS-MKH does not use directly this physical '''gid''', but uses a composite index '''[cxy,lid]''', where '''cxy''' is the cluster identifier, and '''lid''' is a local core index. This '''lid''' index is a continuous index in [0,N-1], where N can depends on the cluster, but cannot be larger than the global parameter CONFIG_MAX_CORE_PER_CLUSTER_NR. 26 26 27 27 The association of a composite index '''[cx,lid]''' to a global physical identifier '''gid''', is defined in the '''arch_info.bin''' file.