Changes between Version 19 and Version 20 of InterconnexionNetworks


Ignore:
Timestamp:
Aug 29, 2010, 4:45:00 PM (14 years ago)
Author:
alain
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • InterconnexionNetworks

    v19 v20  
    1515== 2.  VCI initiators & targets indexing ==
    1616
    17 As a given hardware component can have several VCI ports (for example the L1 cache has two VCI initiator ports : one port to the direct network, and one port to the coherence network), each VCI port should - in principle - have a different identifier. In the specific case of the TSAR architecture, a VCI target or initiator component will never have several VCI port of the  same type (Initiator type or Target type) on the same network. Therefore, each hardware component has – for sake of simplicity - an absolute identifier that is defined by three indexes :
     17As a given hardware component can have several VCI ports (for example the L1 cache has three VCI ports : one initiator port to the direct network, one initiator port to the coherence network, and one target port on the coherence network), each VCI port has a different identifier that is defined by three indexes :
    1818
    1919 * '''X_ID''' is the cluster X-coordinate.
     
    2323The X_ID, Y_ID and L_ID are coded on NX, NY, NL bits respectively.
    2424NX, NY and NL are global parameters for the TSAR architecture, but  NX & NY cannot be larger than 5 (no more than 1024 clusters), and NL cannot be larger than 4
    25 (no more than 16 VCI hardware components per cluster).
     25(no more than 16 ports per cluster).
    2626
    27 In order to simplify the hardware implementation of the memory coherence protocol, the L_ID values are standardized for the memory cache and for the L1 caches :
     27In order to simplify the hardware implementation of the memory coherence protocol, the L_ID values are standardized on the coherence network, and the same value is used
     28for an initaitor port and for a target port:
    2829
    29 
    30 ||COMPONENT     ||LOCAL_INDEX||
    31 ||                             ||                         ||
    32 ||memory cache                  ||0000||
    33 ||Processor 1 (L1 cache)        ||0001||
    34 ||Processor 2 (L1 cache)        ||0011||
    35 ||Processor 3 (L1 cache)        ||0101||
    36 ||Processor 4 (L1 cache)        ||0111||
     30||COMPONENT              ||LOCAL_INDEX||
     31||                       ||           ||
     32||Processor 0 (L1 cache) ||0000       ||
     33||Processor 1 (L1 cache) ||0001       ||
     34||Processor 2 (L1 cache  ||0010       ||
     35||Processor 3 (L1 cache) ||0011       ||
     36||Memory Cache           ||0100       ||
    3737
    3838=== 2.1 Target identification ===
     
    5757== 3.  Direct Network & Coherence Network ==
    5858
    59 These two networks are implemented as two independent virtual networks, in the framework of the DSPIN network on chip general infrastructure :
     59These two networks are implemented by the DSPIN network on chip general infrastructure :
    6060
    6161 * The '''local interconnect''' is implemented as two physically independent local rings, and the coherence ring supports a broadcast service for single flit VCI commands.
    62 Note : These two physically independent rings will be implemented later as one single physical ring supporting two virtual networks.
     62Note : These two physically independent rings could be implemented later as one single physical ring supporting two virtual networks.
    6363
    6464 * The '''global interconnect''' is implemented as one DSPIN network, supporting two virtual sub-networks, and the coherence sub-network supports a broadcast service for single flit VCI commands.
     
    7474 * In a '''cleanup''' command packet from a L1 cache controller to a memory cache controller, the address is obtained by copying the (NX + NY) MSB bits of the line address in the VCI ADDRESS field (left aligned). The 0 value for the LADR address field is used to select the memory cache.
    7575
    76  * In a '''broadcast_invalidate''' command packet, the  ADDRESS[1:0] bits must be equal to 0x3. The 20 bits ADDRESS[21:2] will be used in a future extension of the DSPIN network to define the bounding box of a limited broadcast
     76 * In a '''broadcast_invalidate''' command packet, from a memory cache controller to a L1 cache controller, the  ADDRESS[1:0] bits must be equal to 0x3. The 20 bits ADDRESS[39:20]  contain the XMIN,XMAX,YMIN,YMAX values defining the bounding box of the broadcast:
     77
     78|| XMIN || XMAX || YMIN || YMAX ||  RESERVED ||11||
     79||  5   ||  5   ||  5   ||  5   ||    18     || 2||
    7780
    7881=== 3.2 VCI parameters ===
     
    8083All Hardware components connected to the direct network or to the coherence network  respect the VCI/OCP communication interface.
    8184
    82 The direct network, and the coherence network being ''time-multiplexed'' on the DSPIN infrastructure, have identical VCI parameters :
     85The direct network, and the coherence network being ''time-multiplexed'' on the DSPIN infrastructure, have identical VCI formats :
    8386
    8487|| VCI Field              ||  width  ||
    85 ||                              ||              ||
    86 ||ADDRESS                || 40 bits ||
    87 ||WDATA , RDATA || 32 bits ||
    88 ||PLEN                   || 8   bits ||
    89 ||SRCID, RSRCID  || 14 bits ||
    90 ||TRDID, RTRDID  || 4   bits ||
    91 ||PKTID, RPKTID || 4   bits  ||       
    92 ||RERROR                || 2   bits  ||       
     88||                        ||         ||
     89||ADDRESS                 || 40 bits ||
     90||WDATA , RDATA           || 32 bits ||
     91||PLEN                    || 8  bits ||
     92||SRCID, RSRCID           || 14 bits ||
     93||TRDID, RTRDID           || 4  bits ||
     94||PKTID, RPKTID           || 4  bits ||
     95||RERROR                  || 2  bits ||         
    9396
    9497The TSAR architecture uses three values for the VCI RERROR field, in order to simplify the VCI/DSPIN wrapper, and to reduce the DSPIN Write Response packet length to one flit :