Changes between Version 1 and Version 2 of Component/Mapping Table


Ignore:
Timestamp:
May 16, 2007, 6:36:10 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Mapping Table

    v1 v2  
    77the SoCLib hardware components.
    88
    9 All VCI initiatores and VCI targets share the same "flat" address space, but the address decoding
    10 scheme supports a multi-level structured interconnect.
     9This object is basically an associative table, where each entry define a segment descriptor.
     10A segment is a set of consecutive addresses in the address space. Each segment has a name, and is characterized by the following fields:
     11 * string '''name'''
     12 * addr_t '''base_address'''
     13 * size_t '''size'''
     14 * IntTab '''target_index'''
     15 * bool '''cacheability'''
     16The size field is a number of bytes. The target_index field identifies the VCI target that contains
     17the corresponding segment, and is used by the interconnect to route a command packet to the proper target.
     18The cacheability field can be used by the cache controllers to define if the corresponding segment is cacheable.
     19
     20All segments defined by the system designer for a given architecture must be non-overlaping.
     21
     22Therefore, the mapping table is a centralized description of both the address space segmentation,
     23the mapping of the segments on the hardware architecture physical targets.
     24From this centralized description, it is possible to derive the '''routing tables''' used by the
     25hardware interconnect to route the VCI packets to the proper target, depending of the VCI address.
     26
     27All VCI initiators and VCI targets share the same  address space, but the address decoding
     28scheme can support a structured interconnect.
    1129
    1230== One level interconnect ==
    1331
    14 This is the simplest case:
     32This is the simplest case, where all VCI targets and VCI initiators are connected to a "flat" interconnect.
    1533 * each VCI component is identified by a simple index.
    16  * and all VCI targets must have different indexes. Most hardware interconnects (such as the make the assumption that the target indexes
    17  * each VCI  is identified by a simple index, and all initiators must have different indexes. The initiator index
    18 must be equal to the VCI SRCID value.
    19  * The VCI address is structured in two fields
    20  
     34 * all VCI targets must have different indexes.
     35 * all VCI initiators must have different indexes.
     36 * The initiator index must be equal to the VCI SRCID value. Most hardware interconnects (such as the PibusBcu or the VciVgmn components) make the assumption that the initiator indexes are between 0 and M -1 , where M is the total number of VCI initiators.
     37 * The VCI ADDRESS field is structured in two fields:  | MSB | OFFSET |
     38   * The MSB field is decoded by the flat interconnect to route the command packet to the proper VCI target.
     39   * The OFFSET field is decoded by the VCI target.
     40 * The VCI SRCID field is used by the interconnect to route the response packet to the proper VCI initiator.
     41 * Most flat hardware interconnects (such as the PibusBcu or the VciVgmn components) make the assumption that the target indexes are between 0 and T -1 (where T is the total number of VCI targets), and the initiator indexes are between 0 and M -1 (where M is the total number of VCI initiators).
     42
     43Therefore, the flat interconnect must contain a ROM implementing a '''routing table''' indexed by the
     44VCI ADDRESS MSB bits and containing the corresponding target index.
     45The content of this '''routing table''' is automatically computed by a method associated to the mapping table.
     46
    2147== Two level interconnect ==
    2248
    23 The hardware architecture is supposed to be split into several subsystems (or clusters),
    24 with a global interconnect for inter-cluster communications, and one local interconnect in
     49With a two level interconnect, the hardware architecture is supposed to be split into several subsystems
     50(or clusters), with a global interconnect for inter-cluster communications, and one local interconnect in
    2551each cluster for intra-cluster communications.
    2652
    2753 * each VCI component is identified by a structured index containing two indexes:
    28    * a global index that is the subsystem (or cluster) index.
     54   * a global index that identifies the subsystem (or cluster) index.
    2955   * a local index, that identifies the VCI component in the cluster.
    30  * All , and all targets must have different indexes. Most hardware interconnects (such as the make the assumption that the target indexes
    31  * each VCI  is identified by a simple index, and all initiators must have different indexes. The initiator index
    32 must be equal to the VCI SRCID value.
     56 * all VCI targets in the same cluster must have the same global index.
     57 * all VCI targets in the same cluster must have different local indexes.
     58 * all VCI initiators in the same cluster must have the same global index.
     59 * all VCI initiators in the same cluster must have different local indexes.
     60 * The VCI ADDRESS field is structured in three fields : | MSB | LSB | OFFSET |
     61   * The MSB field is decoded by the global interconnect to route the command packet to the proper cluster.
     62   * The LSB field is decoded by the local interconnect to route the command packet to the proper target.
     63   * The OFFSET field is decoded by the VCI target.
     64 * The VCI SRCID field is structured in two fields : | MSB | LSB |
     65   * The SRCID MSB field must be equal to the initiator global index.
     66   * The SRCID LSB field must be equal to the initiator local index.
    3367
    34 
    35 eand each VCI component is identified
    36 by abut the address decoding
    37 scheme supports.
     68The services provided by the Mapping Table for a two level interconnect are the following :
     69 * It generates the '''Global Routing Table''', indexed by the VCI ADDRESS MSB bits, and containing the corresponding global index (cluster index). This Global Routing Table is used by the global interconnect.
     70 * It generates - for each cluster - the '''Local Routing Table''', indexed by the VCI ADDRESS LSB bits and containing the corresponding target local index. Depending on the mapping, each cluster can have a different Local Routing Table.