Ignore:
Timestamp:
Jul 29, 2013, 11:31:38 AM (11 years ago)
Author:
devigne
Message:

Merge with the lastest version of Trunk
Modification in vci_mem_cache : Using TRT's wdata field for
put request to ixr_cmd (just for INCLUSIVE mode)

Location:
branches/ODCCP/communication/dspin_dhccp_param
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/ODCCP/communication/dspin_dhccp_param

  • branches/ODCCP/communication/dspin_dhccp_param/caba/source/include/dspin_dhccp_param.h

    r460 r479  
    6666
    6767/*
    68  * Memory Cache to L1 cache command packets
    69  *
    70  * CLEANUP ACKNOWLEDGEMENT
    71  *
    72  * flit 1
    73  * ----------------------------------------------------------------------------------------------
    74  * EOP:1 | DEST(14 bits) | X(3 bits) | SET_INDEX(16 bits) | WAY_INDEX(2 bits) | TYPE:0b10X | BC:0
    75  * ----------------------------------------------------------------------------------------------
    76  *                                                                            | X: 0 DATA  |
    77  *                                                                            |    1 INST  |
     68 * M2P command packets
    7869 *
    7970 * MULTICAST UPDATE
     
    8172 * flit 1
    8273 * ----------------------------------------------------------------------------------------------
    83  * EOP:0 | DEST(14 bits) | X(3 bits) | MEMC_ID(14 bits) | UPDT_INDEX(4 bits) | TYPE:0b00X  | BC:0
     74 * EOP:0 | DEST(14 bits) | X(4 bits) | MEMC_ID(14 bits) | UPDT_INDEX(4 bits) | TYPE:0b0X   | BC:0
    8475 * ----------------------------------------------------------------------------------------------
    8576 *                                                                           | X: 0 DATA   |
     
    10495 * flit 1
    10596 * ----------------------------------------------------------------------------------------------
    106  * EOP:0 | DEST(14 bits) | X(3 bits) | MEMC_ID(14 bits) | UPDT_INDEX(4 bits) | TYPE:0b01X | BC:0
     97 * EOP:0 | DEST(14 bits) | X(4 bits) | MEMC_ID(14 bits) | UPDT_INDEX(4 bits) | TYPE:0b1X | BC:0
    10798 * ----------------------------------------------------------------------------------------------
    10899 *                                                                           | X: 0 DATA  |
     
    125116 * EOP:1 |        X(5 bits)       |                                              NLINE (34 bits)
    126117 * ----------------------------------------------------------------------------------------------
     118 *
     119 * M2P clack commands
     120 *
     121 * CLEANUP ACKNOWLEDGEMENT
     122 *
     123 * flit 1
     124 * ----------------------------------------------------------------------------------------------
     125 * EOP:1 | DEST(14 bits) | X(5 bits) | SET_INDEX(16 bits) | WAY_INDEX(2 bits) | TYPE:0bX   | BC:0
     126 * ----------------------------------------------------------------------------------------------
     127 *                                                                            | X: 0 CLACK |
     128 *                                                                            |      DATA  |
     129 *                                                                            |    1 CLACK |
     130 *                                                                            |      INST  |
     131 *
    127132 */
    128133
     
    140145  public:
    141146
    142     static const uint8_t  from_memc_flit_width            = 40;
    143     static const uint8_t  from_l1_flit_width              = 33;
    144 
    145     static const uint8_t  UPDT_INDEX_WIDTH                = 4;
    146     static const uint8_t  NLINE_WIDTH                     = 34;
    147     static const uint8_t  SRCID_WIDTH                     = 14;
    148     static const uint8_t  GLOBALID_WIDTH                  = 10;
    149     static const uint8_t  WORD_INDEX_WIDTH                = 4;
    150     static const uint8_t  BE_WIDTH                        = 4;
    151     static const uint8_t  DATA_WIDTH                      = 32;
    152     static const uint8_t  SET_INDEX_WIDTH                 = 16;
    153     static const uint8_t  WAY_INDEX_WIDTH                 = 2;
    154     static const uint8_t  BROADCAST_BOX_WIDTH             = 20;
    155     static const uint8_t  MC_TYPE_WIDTH                   = 3;
    156     static const uint8_t  L1_TYPE_WIDTH                   = 2;
    157 
    158     static const uint8_t  FROM_L1_TYPE_SHIFT              = 1;
    159     static const uint64_t FROM_L1_TYPE_MASK               = ((1ULL<<L1_TYPE_WIDTH)-1);
    160     static const uint8_t  FROM_L1_EOP_SHIFT               = 32;
    161     static const uint64_t FROM_L1_EOP_MASK                = 1;
    162     static const uint8_t  FROM_L1_BC_SHIFT                = 0;
    163     static const uint64_t FROM_L1_BC_MASK                 = 1;
     147    static const uint8_t  m2p_flit_width               = 40;
     148    static const uint8_t  p2m_flit_width               = 33;
     149    static const uint8_t  clack_flit_width             = 40;
     150
     151    static const uint8_t  UPDT_INDEX_WIDTH             = 4;
     152    static const uint8_t  NLINE_WIDTH                  = 34;
     153    static const uint8_t  SRCID_WIDTH                  = 14;
     154    static const uint8_t  GLOBALID_WIDTH               = 10;
     155    static const uint8_t  WORD_INDEX_WIDTH             = 4;
     156    static const uint8_t  BE_WIDTH                     = 4;
     157    static const uint8_t  DATA_WIDTH                   = 32;
     158    static const uint8_t  SET_INDEX_WIDTH              = 16;
     159    static const uint8_t  WAY_INDEX_WIDTH              = 2;
     160    static const uint8_t  BROADCAST_BOX_WIDTH          = 20;
     161    static const uint8_t  M2P_TYPE_WIDTH               = 2;
     162    static const uint8_t  P2M_TYPE_WIDTH               = 2;
     163    static const uint8_t  CLACK_TYPE_WIDTH             = 1;
     164
     165    static const uint8_t  P2M_TYPE_SHIFT               = 1;
     166    static const uint64_t P2M_TYPE_MASK                = ((1ULL<<P2M_TYPE_WIDTH)-1);
     167    static const uint8_t  P2M_EOP_SHIFT                = 32;
     168    static const uint64_t P2M_EOP_MASK                 = 1;
     169    static const uint8_t  P2M_BC_SHIFT                 = 0;
     170    static const uint64_t P2M_BC_MASK                  = 1;
    164171
    165172    static const uint8_t  CLEANUP_NCC_SHIFT               = 5;
     
    183190    static const uint64_t MULTI_ACK_UPDT_INDEX_MASK       = ((1ULL<<UPDT_INDEX_WIDTH)-1);
    184191
    185     static const uint8_t  FROM_MC_TYPE_SHIFT              = 1;
    186     static const uint64_t FROM_MC_TYPE_MASK               = ((1ULL<<MC_TYPE_WIDTH)-1);
    187     static const uint8_t  FROM_MC_EOP_SHIFT               = 39;
    188     static const uint64_t FROM_MC_EOP_MASK                = 1;
    189     static const uint8_t  FROM_MC_BC_SHIFT                = 0;
    190     static const uint64_t FROM_MC_BC_MASK                 = 1;
     192    static const uint8_t  M2P_TYPE_SHIFT               = 1;
     193    static const uint64_t M2P_TYPE_MASK                = ((1ULL<<M2P_TYPE_WIDTH)-1);
     194    static const uint8_t  M2P_EOP_SHIFT                = 39;
     195    static const uint64_t M2P_EOP_MASK                 = 1;
     196    static const uint8_t  M2P_BC_SHIFT                 = 0;
     197    static const uint64_t M2P_BC_MASK                  = 1;
    191198
    192199    static const uint8_t  MULTI_INVAL_DEST_SHIFT          = 25;
     
    214221    static const uint64_t MULTI_UPDT_DATA_MASK            = ((1ULL<<DATA_WIDTH)-1);
    215222
    216     static const uint8_t  CLEANUP_ACK_DEST_SHIFT          = MULTI_INVAL_DEST_SHIFT;
    217     static const uint64_t CLEANUP_ACK_DEST_MASK           = MULTI_INVAL_DEST_MASK;
    218     static const uint8_t  CLEANUP_ACK_SET_SHIFT           = 6;
    219     static const uint64_t CLEANUP_ACK_SET_MASK            = ((1ULL<<SET_INDEX_WIDTH)-1);
    220     static const uint8_t  CLEANUP_ACK_WAY_SHIFT           = 4;
    221     static const uint64_t CLEANUP_ACK_WAY_MASK            = ((1ULL<<WAY_INDEX_WIDTH)-1);
    222 
    223223    static const uint8_t  BROADCAST_BOX_SHIFT             = 19;
    224224    static const uint64_t BROADCAST_BOX_MASK              = ((1ULL<<BROADCAST_BOX_WIDTH)-1);
     
    228228    static const uint64_t BROADCAST_NLINE_MASK            = MULTI_INVAL_NLINE_MASK;
    229229
     230    static const uint8_t  CLACK_TYPE_SHIFT             = 1;
     231    static const uint64_t CLACK_TYPE_MASK              = ((1ULL<<CLACK_TYPE_WIDTH)-1);
     232    static const uint8_t  CLACK_EOP_SHIFT              = 39;
     233    static const uint64_t CLACK_EOP_MASK               = 1;
     234    static const uint8_t  CLACK_BC_SHIFT               = 0;
     235    static const uint64_t CLACK_BC_MASK                = 1;
     236    static const uint8_t  CLACK_DEST_SHIFT             = 25;
     237    static const uint64_t CLACK_DEST_MASK              = ((1ULL<<SRCID_WIDTH)-1);
     238    static const uint8_t  CLACK_SET_SHIFT              = 6;
     239    static const uint64_t CLACK_SET_MASK               = ((1ULL<<SET_INDEX_WIDTH)-1);
     240    static const uint8_t  CLACK_WAY_SHIFT              = 4;
     241    static const uint64_t CLACK_WAY_MASK               = ((1ULL<<WAY_INDEX_WIDTH)-1);
     242
    230243    /*
    231      * L1 cache to Memory Cache command types
     244     * P2M command types
    232245     */
    233246    enum
     
    240253
    241254    /*
    242      * Memory Cache to L1 cache command types
     255     * M2P command types
    243256     */
    244257    enum
     
    249262      TYPE_MULTI_INVAL      = 2,
    250263      TYPE_MULTI_INVAL_DATA = TYPE_MULTI_INVAL,
    251       TYPE_MULTI_INVAL_INST = 3,
    252       TYPE_CLEANUP_ACK      = 4,
    253       TYPE_CLEANUP_ACK_DATA = TYPE_CLEANUP_ACK,
    254       TYPE_CLEANUP_ACK_INST = 5
     264      TYPE_MULTI_INVAL_INST = 3
    255265    };
    256266
     267    /*
     268     * CLACK command types
     269     */
     270    enum
     271    {
     272      TYPE_CLACK      = 0,
     273      TYPE_CLACK_DATA = TYPE_CLACK,
     274      TYPE_CLACK_INST = 1
     275    };
     276
    257277    enum flit_field_e
    258278    {
    259       FROM_L1_TYPE,
    260       FROM_L1_EOP,
    261       FROM_L1_BC,
     279      P2M_TYPE,
     280      P2M_EOP,
     281      P2M_BC,
    262282
    263283      CLEANUP_NCC,
     
    272292      MULTI_ACK_UPDT_INDEX,
    273293
    274       FROM_MC_TYPE,
    275       FROM_MC_EOP,
    276       FROM_MC_BC,
     294      M2P_TYPE,
     295      M2P_EOP,
     296      M2P_BC,
    277297
    278298      MULTI_INVAL_DEST,
     
    289309      MULTI_UPDT_DATA,
    290310
    291       CLEANUP_ACK_DEST,
    292       CLEANUP_ACK_SET,
    293       CLEANUP_ACK_WAY,
     311      CLACK_TYPE,
     312
     313      CLACK_DEST,
     314      CLACK_SET,
     315      CLACK_WAY,
    294316
    295317      BROADCAST_BOX,
     
    302324      switch(field)
    303325      {
    304         GET_FIELD(flit,FROM_L1_TYPE);
    305         GET_FIELD(flit,FROM_L1_EOP);
    306         GET_FIELD(flit,FROM_L1_BC);
     326        GET_FIELD(flit,P2M_TYPE);
     327        GET_FIELD(flit,P2M_EOP);
     328        GET_FIELD(flit,P2M_BC);
    307329        GET_FIELD(flit,CLEANUP_NCC);
    308330        GET_FIELD(flit,CLEANUP_DEST);
     
    314336        GET_FIELD(flit,MULTI_ACK_DEST);
    315337        GET_FIELD(flit,MULTI_ACK_UPDT_INDEX);
    316         GET_FIELD(flit,FROM_MC_TYPE);
    317         GET_FIELD(flit,FROM_MC_EOP);
    318         GET_FIELD(flit,FROM_MC_BC);
     338        GET_FIELD(flit,M2P_TYPE);
     339        GET_FIELD(flit,M2P_EOP);
     340        GET_FIELD(flit,M2P_BC);
    319341        GET_FIELD(flit,MULTI_INVAL_DEST);
    320342        GET_FIELD(flit,MULTI_INVAL_SRCID);
     
    328350        GET_FIELD(flit,MULTI_UPDT_BE);
    329351        GET_FIELD(flit,MULTI_UPDT_DATA);
    330         GET_FIELD(flit,CLEANUP_ACK_DEST);
    331         GET_FIELD(flit,CLEANUP_ACK_SET);
    332         GET_FIELD(flit,CLEANUP_ACK_WAY);
     352        GET_FIELD(flit,CLACK_TYPE);
     353        GET_FIELD(flit,CLACK_DEST);
     354        GET_FIELD(flit,CLACK_SET);
     355        GET_FIELD(flit,CLACK_WAY);
    333356        GET_FIELD(flit,BROADCAST_BOX);
    334357        GET_FIELD(flit,BROADCAST_SRCID);
     
    343366      switch(field)
    344367      {
    345         SET_FIELD(flit,value,FROM_L1_TYPE);
    346         SET_FIELD(flit,value,FROM_L1_EOP);
    347         SET_FIELD(flit,value,FROM_L1_BC);
     368        SET_FIELD(flit,value,P2M_TYPE);
     369        SET_FIELD(flit,value,P2M_EOP);
     370        SET_FIELD(flit,value,P2M_BC);
    348371        SET_FIELD(flit,value,CLEANUP_NCC);
    349372        SET_FIELD(flit,value,CLEANUP_DEST);
     
    355378        SET_FIELD(flit,value,MULTI_ACK_DEST);
    356379        SET_FIELD(flit,value,MULTI_ACK_UPDT_INDEX);
    357         SET_FIELD(flit,value,FROM_MC_TYPE);
    358         SET_FIELD(flit,value,FROM_MC_EOP);
    359         SET_FIELD(flit,value,FROM_MC_BC);
     380        SET_FIELD(flit,value,M2P_TYPE);
     381        SET_FIELD(flit,value,M2P_EOP);
     382        SET_FIELD(flit,value,M2P_BC);
    360383        SET_FIELD(flit,value,MULTI_INVAL_DEST);
    361384        SET_FIELD(flit,value,MULTI_INVAL_SRCID);
     
    369392        SET_FIELD(flit,value,MULTI_UPDT_BE);
    370393        SET_FIELD(flit,value,MULTI_UPDT_DATA);
    371         SET_FIELD(flit,value,CLEANUP_ACK_DEST);
    372         SET_FIELD(flit,value,CLEANUP_ACK_SET);
    373         SET_FIELD(flit,value,CLEANUP_ACK_WAY);
     394        SET_FIELD(flit,value,CLACK_TYPE);
     395        SET_FIELD(flit,value,CLACK_DEST);
     396        SET_FIELD(flit,value,CLACK_SET);
     397        SET_FIELD(flit,value,CLACK_WAY);
    374398        SET_FIELD(flit,value,BROADCAST_BOX);
    375399        SET_FIELD(flit,value,BROADCAST_SRCID);
Note: See TracChangeset for help on using the changeset viewer.