Ignore:
Timestamp:
Apr 4, 2013, 2:36:54 PM (11 years ago)
Author:
joannou
Message:

Got rid of intermediate v5 version. _dspin_coherence versions changed to main version for v5. Changed components names and platforms to fit the new names

Location:
branches/v5/platforms/tsar_generic_mmu
Files:
1 deleted
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/v5/platforms/tsar_generic_mmu/soclib.conf

    r342 r351  
    55#config.addDescPath("path/to/tsar/branches/v5/modules/")
    66#config.addDescPath("path/to/tsar/branches/v5/communication/")
     7#config.addDescPath("path/to/tsar/branches/v5/platforms/tsar_generic_mmu_dspin_coherence/")
  • branches/v5/platforms/tsar_generic_mmu/top.cpp

    r342 r351  
    424424   std::cout << maptabd << std::endl;
    425425
    426    // coherence network
    427    // - tgtid_c_proc = srcid_c_proc = local procid
    428    // - tgtid_c_memc = srcid_c_memc = NB_PROCS_MAX
    429    MappingTable maptabc(address_width,
    430          IntTab(x_width + y_width, srcid_width - x_width - y_width),
    431          IntTab(x_width + y_width, srcid_width - x_width - y_width),
    432          0x00FF0000);
    433 
    434    for (size_t x = 0; x < CLUSTER_X; x++)
    435    {
    436       for (size_t y = 0; y < CLUSTER_Y; y++)
    437       {
    438          sc_uint<address_width> offset  = cluster(x,y) << (address_width-x_width-y_width);
    439 
    440          // cleanup requests must be routed to the memory cache
    441          std::ostringstream sh;
    442          sh << "c_seg_memc_" << x << "_" << y;
    443          maptabc.add(Segment(sh.str(), (NB_PROCS_MAX << (address_width - srcid_width)) + offset,
    444                      0x10, IntTab(cluster(x,y), NB_PROCS_MAX), false));
    445 
    446          // update & invalidate requests must be routed to the proper processor
    447          for ( size_t p = 0 ; p < NB_PROCS_MAX ; p++)
    448          {
    449             std::ostringstream sp;
    450             sp << "c_seg_proc_" << x << "_" << y << "_" << p;
    451             maptabc.add( Segment( sp.str() , (p << (address_width - srcid_width)) + offset ,
    452                          0x10 , IntTab(cluster(x,y), p) , false));
    453          }
    454       }
    455    }
    456    std::cout << maptabc << std::endl;
    457426
    458427   // external network
     
    557526                cluster(x,y),
    558527                maptabd,
    559                 maptabc,
    560528                maptabx,
    561529                x_width,
    562530                y_width,
     531                4, //local_id_width
    563532                MEMC_TGTID,
    564533                XICU_TGTID,
     
    724693         std::cout << " ************************************************" << std::endl;
    725694
    726    //          clusters[0][0]->proc[0]->print_trace();
     695//             clusters[0][0]->proc[0]->print_trace();
    727696     //        clusters[0][0]->proc[1]->print_trace();
    728              clusters[0][0]->proc[2]->print_trace();
     697   //          clusters[1][0]->proc[2]->print_trace();
    729698       //      clusters[0][0]->proc[3]->print_trace();
    730              clusters[0][0]->memc->print_trace();
     699  //           clusters[0][0]->memc->print_trace();
    731700         // trace proc[debug_proc_id]
    732 /*
    733701         if ( debug_proc_id < (CLUSTER_X * CLUSTER_Y * NB_PROCS_MAX) )
    734702         {
     
    739707
    740708             clusters[proc_x][proc_y]->signal_vci_ini_d_proc[0].print_trace("proc_ini_d");
    741              clusters[proc_x][proc_y]->signal_vci_ini_c_proc[0].print_trace("proc_ini_c");
    742              clusters[proc_x][proc_y]->signal_vci_tgt_c_proc[0].print_trace("proc_tgt_c");
     709             clusters[proc_x][proc_y]->signal_dspin_c_from_proc[0].print_trace("from_proc_c");
     710             clusters[proc_x][proc_y]->signal_dspin_c_to_proc[0].print_trace("to_proc_c");
    743711         }
    744712
     
    752720
    753721             clusters[memc_x][memc_y]->signal_vci_tgt_d_memc.print_trace("memc_tgt_d");
    754              clusters[memc_x][memc_y]->signal_vci_ini_c_memc.print_trace("memc_ini_c");
    755              clusters[memc_x][memc_y]->signal_vci_tgt_c_memc.print_trace("memc_tgt_c");
     722             clusters[memc_x][memc_y]->signal_dspin_c_from_memc.print_trace("from_memc_c");
     723             clusters[memc_x][memc_y]->signal_dspin_c_to_memc.print_trace("to_memc_c");
    756724         }
    757725
     
    776744// clusters[1][1]->signal_vci_tgt_d_mdma.print_trace("mdma_1_1_tgt_d  ");
    777745// clusters[1][1]->signal_vci_ini_d_mdma.print_trace("mdma_1_1_ini_d  ");
    778 */
    779746      }
    780747
  • branches/v5/platforms/tsar_generic_mmu/tsar_cluster_mmu/caba/metadata/tsar_cluster_mmu.sd

    r342 r351  
    1515                Uses('common:mapping_table'),
    1616                Uses('common:iss2'),
    17                 Uses('caba:vci_cc_vcache_wrapper_dspin_coherence',
     17                Uses('caba:vci_cc_vcache_wrapper',
    1818                     iss_t = 'common:gdb_iss',
    1919                     gdb_iss_t = 'common:mips32el'),
    20                 Uses('caba:vci_mem_cache_dspin_coherence'),
     20                Uses('caba:vci_mem_cache'),
    2121                Uses('caba:vci_simple_ram'),
    2222        Uses('caba:vci_xicu'),
  • branches/v5/platforms/tsar_generic_mmu/tsar_cluster_mmu/caba/source/include/tsar_cluster_mmu.h

    r342 r351  
    3232#include "vci_framebuffer.h"
    3333#include "vci_multi_dma.h"
    34 #include "vci_mem_cache_dspin_coherence.h"
    35 #include "vci_cc_vcache_wrapper_dspin_coherence.h"
     34#include "vci_mem_cache.h"
     35#include "vci_cc_vcache_wrapper.h"
    3636
    3737namespace soclib {
     
    128128                     size_t                             cluster,       // y + ymax*x
    129129                     const soclib::common::MappingTable &mtd,          // direct mapping table
    130                      const soclib::common::MappingTable &mtc,          // coherence mapping table
    131130                     const soclib::common::MappingTable &mtx,          // xram mapping table
    132131                     size_t                                 x_width,       // x field number of bits
    133132                     size_t                                 y_width,       // y field number of bits
     133                     size_t                                 l_width,       // l field number of bits
    134134                     size_t                                 tgtid_memc,
    135135                     size_t                                 tgtid_xicu,
     
    150150                     size_t                             xfb,           // frame buffer pixels
    151151                     size_t                             yfb,           // frame buffer lines
    152                      char*                              disk_name,     // virtual disk name for BDEV
     152                     char*                              disk_name,     // virtual disk for BDEV
    153153                     size_t                             block_size,    // block size for BDEV
    154154                     size_t                             nic_channels,  // number of channels
  • branches/v5/platforms/tsar_generic_mmu/tsar_cluster_mmu/caba/source/src/tsar_cluster_mmu.cpp

    r343 r351  
    4242         size_t                             cluster_id,
    4343         const soclib::common::MappingTable &mtd,
    44          const soclib::common::MappingTable &mtc,
    4544         const soclib::common::MappingTable &mtx,
    4645         size_t                             x_width,
    4746         size_t                             y_width,
     47         size_t                             l_width,
    4848         size_t                             tgtid_memc,
    4949         size_t                             tgtid_xicu,
     
    106106                      cluster_id*nb_procs + p,
    107107                      mtd,                            // Mapping Table Direct
    108                       mtc,                            // Mapping Table Coherence
    109108                      IntTab(cluster_id,p),           // SRCID_D
    110                       IntTab(cluster_id,p),           // SRCID_C
    111                       IntTab(cluster_id,p),           // TGTID_C
     109                      (cluster_id << l_width) + p,    // CC_GLOBAL_ID
    112110                      8,                              // ITLB ways
    113111                      8,                              // ITLB sets
     
    120118                      x_width,
    121119                      y_width,
    122                       nb_procs,                       // MEMC local index
    123120                      frozen_cycles,                  // max frozen cycles
    124121                      debug_start_cycle,
     
    132129    memc = new VciMemCache<vci_param>(
    133130                     smemc.str().c_str(),
    134                      mtd, mtc, mtx,
     131                     mtd, mtx,
    135132                     IntTab(cluster_id),              // SRCID_X
    136                      IntTab(cluster_id, nb_procs),    // SRCID_C
    137133                     IntTab(cluster_id, tgtid_memc),  // TGTID_D
    138                      IntTab(cluster_id, nb_procs),    // TGTID_C
     134                     (cluster_id << l_width) + nb_procs, // CC_GLOBAL_ID
    139135                     memc_ways, memc_sets, 16,        // CACHE SIZE
    140                      //4096,                            // HEAP SIZE
     136                     3,                                  // MAX NUMBER OF COPIES
    141137                     256,                            // HEAP SIZE
    142138                     8,                               // TRANSACTION TABLE DEPTH
     
    205201    sc << "ringc_" << x_id << "_" << y_id;
    206202        //ringc = new soclib::caba::DspinLocalRingFastC<vci_param, 40, 33>(sc.str().c_str(),mtc, IntTab(cluster_id), 2, 2, 2, nb_procs + 1, x_width, y_width);
    207         ringc = new soclib::caba::DspinLocalRingFastC<vci_param, 40, 33>(sc.str().c_str(),mtc, IntTab(cluster_id), 2, 2, 1, nb_procs, x_width, y_width);
     203        //
     204   // coherence network
     205   // - tgtid_c_proc = srcid_c_proc = local procid
     206   // - tgtid_c_memc = srcid_c_memc = NB_PROCS_MAX
     207#define address_width         32
     208#define srcid_width           14
     209#include "../../../../giet_vm/hard_config.h"
     210#define cluster(x,y)   (y + CLUSTER_Y*x)
     211   MappingTable maptabc(address_width,
     212         IntTab(x_width + y_width, srcid_width - x_width - y_width),
     213         IntTab(x_width + y_width, srcid_width - x_width - y_width),
     214         0x00FF0000);
     215
     216   for (size_t x = 0; x < CLUSTER_X; x++)
     217   {
     218      for (size_t y = 0; y < CLUSTER_Y; y++)
     219      {
     220         sc_uint<address_width> offset  = cluster(x,y) << (address_width-x_width-y_width);
     221
     222         // cleanup requests must be routed to the memory cache
     223         std::ostringstream sh;
     224         sh << "c_seg_memc_" << x << "_" << y;
     225         maptabc.add(Segment(sh.str(), (NB_PROCS_MAX << (address_width - srcid_width)) + offset,
     226                     0x10, IntTab(cluster(x,y), NB_PROCS_MAX), false));
     227
     228         // update & invalidate requests must be routed to the proper processor
     229         for ( size_t p = 0 ; p < NB_PROCS_MAX ; p++)
     230         {
     231            std::ostringstream sp;
     232            sp << "c_seg_proc_" << x << "_" << y << "_" << p;
     233            maptabc.add( Segment( sp.str() , (p << (address_width - srcid_width)) + offset ,
     234                         0x10 , IntTab(cluster(x,y), p) , false));
     235         }
     236      }
     237   }
     238   std::cout << maptabc << std::endl;
     239        //
     240        //
     241        //
     242        ringc = new soclib::caba::DspinLocalRingFastC<vci_param, 40, 33>(sc.str().c_str(),maptabc, IntTab(cluster_id), 2, 2, 1, nb_procs, x_width, y_width);
    208243
    209244    std::cout << "  - building wrappers in cluster_" << x_id << "_" << y_id << std::endl;
     
    405440        proc[p]->p_clk                      (this->p_clk);
    406441        proc[p]->p_resetn                   (this->p_resetn);
    407         proc[p]->p_vci_ini_d                (signal_vci_ini_d_proc[p]);
     442        proc[p]->p_vci                      (signal_vci_ini_d_proc[p]);
    408443        proc[p]->p_dspin_in                 (signal_dspin_c_to_proc[p]);
    409444        proc[p]->p_dspin_out                (signal_dspin_c_from_proc[p]);
Note: See TracChangeset for help on using the changeset viewer.