Changeset 351 for branches/v5/platforms/tsar_generic_mmu
- Timestamp:
- Apr 4, 2013, 2:36:54 PM (12 years ago)
- 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 5 5 #config.addDescPath("path/to/tsar/branches/v5/modules/") 6 6 #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 424 424 std::cout << maptabd << std::endl; 425 425 426 // coherence network427 // - tgtid_c_proc = srcid_c_proc = local procid428 // - tgtid_c_memc = srcid_c_memc = NB_PROCS_MAX429 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 cache441 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 processor447 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;457 426 458 427 // external network … … 557 526 cluster(x,y), 558 527 maptabd, 559 maptabc,560 528 maptabx, 561 529 x_width, 562 530 y_width, 531 4, //local_id_width 563 532 MEMC_TGTID, 564 533 XICU_TGTID, … … 724 693 std::cout << " ************************************************" << std::endl; 725 694 726 //clusters[0][0]->proc[0]->print_trace();695 // clusters[0][0]->proc[0]->print_trace(); 727 696 // clusters[0][0]->proc[1]->print_trace(); 728 clusters[0][0]->proc[2]->print_trace();697 // clusters[1][0]->proc[2]->print_trace(); 729 698 // clusters[0][0]->proc[3]->print_trace(); 730 clusters[0][0]->memc->print_trace();699 // clusters[0][0]->memc->print_trace(); 731 700 // trace proc[debug_proc_id] 732 /*733 701 if ( debug_proc_id < (CLUSTER_X * CLUSTER_Y * NB_PROCS_MAX) ) 734 702 { … … 739 707 740 708 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"); 743 711 } 744 712 … … 752 720 753 721 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"); 756 724 } 757 725 … … 776 744 // clusters[1][1]->signal_vci_tgt_d_mdma.print_trace("mdma_1_1_tgt_d "); 777 745 // clusters[1][1]->signal_vci_ini_d_mdma.print_trace("mdma_1_1_ini_d "); 778 */779 746 } 780 747 -
branches/v5/platforms/tsar_generic_mmu/tsar_cluster_mmu/caba/metadata/tsar_cluster_mmu.sd
r342 r351 15 15 Uses('common:mapping_table'), 16 16 Uses('common:iss2'), 17 Uses('caba:vci_cc_vcache_wrapper _dspin_coherence',17 Uses('caba:vci_cc_vcache_wrapper', 18 18 iss_t = 'common:gdb_iss', 19 19 gdb_iss_t = 'common:mips32el'), 20 Uses('caba:vci_mem_cache _dspin_coherence'),20 Uses('caba:vci_mem_cache'), 21 21 Uses('caba:vci_simple_ram'), 22 22 Uses('caba:vci_xicu'), -
branches/v5/platforms/tsar_generic_mmu/tsar_cluster_mmu/caba/source/include/tsar_cluster_mmu.h
r342 r351 32 32 #include "vci_framebuffer.h" 33 33 #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" 36 36 37 37 namespace soclib { … … 128 128 size_t cluster, // y + ymax*x 129 129 const soclib::common::MappingTable &mtd, // direct mapping table 130 const soclib::common::MappingTable &mtc, // coherence mapping table131 130 const soclib::common::MappingTable &mtx, // xram mapping table 132 131 size_t x_width, // x field number of bits 133 132 size_t y_width, // y field number of bits 133 size_t l_width, // l field number of bits 134 134 size_t tgtid_memc, 135 135 size_t tgtid_xicu, … … 150 150 size_t xfb, // frame buffer pixels 151 151 size_t yfb, // frame buffer lines 152 char* disk_name, // virtual disk namefor BDEV152 char* disk_name, // virtual disk for BDEV 153 153 size_t block_size, // block size for BDEV 154 154 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 42 42 size_t cluster_id, 43 43 const soclib::common::MappingTable &mtd, 44 const soclib::common::MappingTable &mtc,45 44 const soclib::common::MappingTable &mtx, 46 45 size_t x_width, 47 46 size_t y_width, 47 size_t l_width, 48 48 size_t tgtid_memc, 49 49 size_t tgtid_xicu, … … 106 106 cluster_id*nb_procs + p, 107 107 mtd, // Mapping Table Direct 108 mtc, // Mapping Table Coherence109 108 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 112 110 8, // ITLB ways 113 111 8, // ITLB sets … … 120 118 x_width, 121 119 y_width, 122 nb_procs, // MEMC local index123 120 frozen_cycles, // max frozen cycles 124 121 debug_start_cycle, … … 132 129 memc = new VciMemCache<vci_param>( 133 130 smemc.str().c_str(), 134 mtd, mt c, mtx,131 mtd, mtx, 135 132 IntTab(cluster_id), // SRCID_X 136 IntTab(cluster_id, nb_procs), // SRCID_C137 133 IntTab(cluster_id, tgtid_memc), // TGTID_D 138 IntTab(cluster_id, nb_procs), // TGTID_C134 (cluster_id << l_width) + nb_procs, // CC_GLOBAL_ID 139 135 memc_ways, memc_sets, 16, // CACHE SIZE 140 //4096, // HEAP SIZE136 3, // MAX NUMBER OF COPIES 141 137 256, // HEAP SIZE 142 138 8, // TRANSACTION TABLE DEPTH … … 205 201 sc << "ringc_" << x_id << "_" << y_id; 206 202 //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); 208 243 209 244 std::cout << " - building wrappers in cluster_" << x_id << "_" << y_id << std::endl; … … 405 440 proc[p]->p_clk (this->p_clk); 406 441 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]); 408 443 proc[p]->p_dspin_in (signal_dspin_c_to_proc[p]); 409 444 proc[p]->p_dspin_out (signal_dspin_c_from_proc[p]);
Note: See TracChangeset
for help on using the changeset viewer.