Ignore:
Timestamp:
Sep 12, 2014, 3:10:04 PM (10 years ago)
Author:
cfuguet
Message:

tsar_generic_iob: Using the new P_WIDTH constant from hard_config.h

  • This constant is used in the clusters to compute the procesor id which now is: (((x << Y_WIDTH) + y) << P_WIDTH) + lpid
  • Introducing the p_width constant in the arch.py and non_distributed_arch.py files
Location:
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h

    r739 r802  
    201201                    size_t                             y_width,       // y field  bits
    202202                    size_t                             l_width,       // l field  bits
     203                    size_t                             p_width,       // p field  bits
    203204
    204205                    size_t                             int_memc_tgt_id,
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp

    r739 r802  
    11//////////////////////////////////////////////////////////////////////////////
    22// File: tsar_iob_cluster.cpp
    3 // Author: Alain Greiner 
     3// Author: Alain Greiner
    44// Copyright: UPMC/LIP6
    55// Date : april 2013
     
    1010// - 1 vci_io_bridge (connected to the 3 networks.
    1111// - 3 vci_dspin_wrapper for the IOB.
    12 // - 2 dspin_local_crossbar for commands and responses. 
     12// - 2 dspin_local_crossbar for commands and responses.
    1313//////////////////////////////////////////////////////////////////////////////
    1414
     
    4040
    4141                    const soclib::common::MappingTable &mt_int,
    42                     const soclib::common::MappingTable &mt_ram, 
    43                     const soclib::common::MappingTable &mt_iox, 
     42                    const soclib::common::MappingTable &mt_ram,
     43                    const soclib::common::MappingTable &mt_iox,
    4444
    4545                    size_t                             x_width,
    4646                    size_t                             y_width,
    4747                    size_t                             l_width,
     48                    size_t                             p_width,
    4849
    4950                    size_t                             int_memc_tgt_id, // local index
     
    103104    {
    104105        p_vci_iob_iox_ini = new soclib::caba::VciInitiator<vci_param_ext>;
    105         p_vci_iob_iox_tgt = new soclib::caba::VciTarget<vci_param_ext>; 
     106        p_vci_iob_iox_tgt = new soclib::caba::VciTarget<vci_param_ext>;
    106107    }
    107108
     
    112113    ////////////  PROCS
    113114    for (size_t p = 0; p < nb_procs; p++)
    114     { 
     115    {
    115116        std::ostringstream s_proc;
    116117        s_proc << "proc_" << x_id << "_" << y_id << "_" << p;
     
    120121                                         GdbServer<Mips32ElIss> >(
    121122                      s_proc.str().c_str(),
    122                       cluster_id*nb_procs + p,        // GLOBAL PROC_ID
     123                      (cluster_id << p_width) + p,    // GLOBAL PROC_ID
    123124                      mt_int,                         // Mapping Table INT network
    124125                      IntTab(cluster_id,p),           // SRCID
     
    139140    }
    140141
    141     ///////////  MEMC   
     142    ///////////  MEMC
    142143    std::ostringstream s_memc;
    143144    s_memc << "memc_" << x_id << "_" << y_id;
     
    204205                     cluster_id,                   // cluster id
    205206                     nb_direct_initiators,         // number of local initiators
    206                      nb_direct_targets,            // number of local targets 
     207                     nb_direct_targets,            // number of local targets
    207208                     0 );                          // default target
    208209
     
    234235                     x_width, y_width, l_width,    // several dests
    235236                     1,                            // number of local sources
    236                      nb_procs,                     // number of local dests 
    237                      2, 2,                         // fifo depths 
     237                     nb_procs,                     // number of local dests
     238                     2, 2,                         // fifo depths
    238239                     true,                         // pseudo CMD
    239240                     false,                        // no routing table
     
    249250                     nb_procs,                     // number of local sources
    250251                     1,                            // number of local dests
    251                      2, 2,                         // fifo depths 
     252                     2, 2,                         // fifo depths
    252253                     false,                        // pseudo RSP
    253254                     false,                        // no routing table
    254                      false );                      // no broacast 
     255                     false );                      // no broacast
    255256
    256257    std::ostringstream s_int_xbar_clack_c;
     
    262263                     x_width, y_width, l_width,
    263264                     1,                            // number of local sources
    264                      nb_procs,                     // number of local targets 
     265                     nb_procs,                     // number of local targets
    265266                     1, 1,                         // fifo depths
    266267                     true,                         // CMD
     
    330331        ///////////  IO_BRIDGE
    331332        std::ostringstream s_iob;
    332         s_iob << "iob_" << x_id << "_" << y_id;   
     333        s_iob << "iob_" << x_id << "_" << y_id;
    333334        iob = new VciIoBridge<vci_param_int,
    334                               vci_param_ext>( 
     335                              vci_param_ext>(
    335336                     s_iob.str().c_str(),
    336337                     mt_ram,                                // EXT network maptab
     
    346347                     debug_start_cycle,
    347348                     iob_debug_ok );
    348        
     349
    349350        std::ostringstream s_iob_ram_wi;
    350         s_iob_ram_wi << "iob_ram_wi_" << x_id << "_" << y_id;   
     351        s_iob_ram_wi << "iob_ram_wi_" << x_id << "_" << y_id;
    351352        iob_ram_wi = new VciDspinInitiatorWrapper<vci_param_ext,
    352353                                                  dspin_ram_cmd_width,
     
    388389    // on coherence network : local srcid[proc] in [0...nb_procs-1]
    389390    //                      : local srcid[memc] = nb_procs
    390  
     391
    391392    //////////////////////// internal CMD & RSP routers
    392393    int_router_cmd->p_clk                        (this->p_clk);
     
    417418    int_router_cmd->p_in[4][1]                   (signal_int_dspin_m2p_l2g_c);
    418419    int_router_cmd->p_in[4][2]                   (signal_int_dspin_clack_l2g_c);
    419    
     420
    420421    int_router_rsp->p_out[4][0]                  (signal_int_dspin_rsp_g2l_d);
    421422    int_router_rsp->p_out[4][1]                  (signal_int_dspin_p2m_g2l_c);
     
    453454    int_wt_gate_d->p_dspin_cmd                   (signal_int_dspin_cmd_g2l_d);
    454455    int_wt_gate_d->p_dspin_rsp                   (signal_int_dspin_rsp_l2g_d);
    455    
     456
    456457    ////////////////////// M2P DSPIN local crossbar coherence
    457458    int_xbar_m2p_c->p_clk                        (this->p_clk);
     
    460461    int_xbar_m2p_c->p_global_in                  (signal_int_dspin_m2p_g2l_c);
    461462    int_xbar_m2p_c->p_local_in[0]                (signal_int_dspin_m2p_memc);
    462     for (size_t p = 0; p < nb_procs; p++) 
     463    for (size_t p = 0; p < nb_procs; p++)
    463464        int_xbar_m2p_c->p_local_out[p]           (signal_int_dspin_m2p_proc[p]);
    464465
     
    469470    int_xbar_p2m_c->p_global_in                  (signal_int_dspin_p2m_g2l_c);
    470471    int_xbar_p2m_c->p_local_out[0]               (signal_int_dspin_p2m_memc);
    471     for (size_t p = 0; p < nb_procs; p++) 
     472    for (size_t p = 0; p < nb_procs; p++)
    472473        int_xbar_p2m_c->p_local_in[p]            (signal_int_dspin_p2m_proc[p]);
    473474
     
    511512        else if ( i <= nb_dmas ) xicu->p_hwi[i]  (signal_irq_mdma[i-1]);
    512513        else                     xicu->p_hwi[i]  (signal_false);
    513     }                     
     514    }
    514515
    515516    ///////////////////////////////////// MEMC
     
    576577       ram_router_rsp->p_out[4]                  (signal_ram_dspin_rsp_memc_i);
    577578    }
    578    
    579     ///////////////////////// IOB exists only in cluster_iob0 & cluster_iob1. 
     579
     580    ///////////////////////// IOB exists only in cluster_iob0 & cluster_iob1.
    580581    if ( is_io )
    581582    {
Note: See TracChangeset for help on using the changeset viewer.