Changes between Initial Version and Version 1 of arch_info


Ignore:
Timestamp:
Jul 5, 2016, 1:39:48 PM (8 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • arch_info

    v1 v1  
     1= Hardware Platform Definition =
     2
     3[[PageOutline]]
     4
     5ALMOS-MK has been designed to support clustered manycore architectures, using 32 bits cores (such as the MIPS32 based TSAR architecture), or 64 bits cores (such as the I64 based multicores INTEL/AMD architectures). Each cluster contains one or several cores and one physical memory bank. ALMOS-MK implement one kernel instance per cluster.
     6
     7All relevant parameters describing the clustered multi-core architecture must be defined in the binary '''arch_info.bin''' file.
     8This binary file is exploited by the ALMOS-MK boot loader to configure the ALMOS-MK. It can be generated by a specific  '''arch.py''' python scrip, for each target architecture.
     9
     10== 1)  Cluster identification and addressing ==
     11
     12To identify a cluster in the clustered architecture, ALMOS-MK uses an unique cluster identifier '''cxy'''. ALMOS-MK does not make any
     13assumption on the clusters topology, but makes the assumption that the '''cxy''' binary value can be directly concatened 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 cannot be used to index a cluster array.
     14
     15The size of the local physical address space (inside a cluster) is defined by the '''CONFIG_CLUSTER_SPAN''' global parameter, 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. Any physical address is coded on 64 bits in ALMOS-MK.
     16
     17Note : In architectures where the clusters are organized as a 2D mesh topology, is is possible to derive the [x,y] cluster coordinates from
     18the '''cxy''' cluster identifier, and ALMOS-MK can use it to optimize placement and improve locality, but this optimisation is NOT mandatory.
     19
     20== 2) Processor Core identification ==
     21
     22ALMOS-MK makes the assumption that each physical core contains an addressable register containing an unique global identifier
     23(called '''gid''') with the only constraint that two different cores have two different '''gid'''.
     24
     25To 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 depend on the cluster, but cannot be larger than the global parameter CONFIG_MAX_CORE_PER_CLUSTER_NR.
     26
     27This abstract composite index is mandatory to support various manycore hardware platforms. The association of a composite index '''[cx,lid]''' to a global physical identifier '''gid''', is defined in the '''arch_info.bin''' file.