Changeset 604 for branches/RWT/modules/vci_cc_vcache_wrapper
- Timestamp:
- Dec 17, 2013, 3:21:07 PM (11 years ago)
- Location:
- branches/RWT/modules/vci_cc_vcache_wrapper/caba/source
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/RWT/modules/vci_cc_vcache_wrapper/caba/source/include/vci_cc_vcache_wrapper.h
r577 r604 604 604 605 605 // communication between CC_RECEIVE FSM and DCACHE FSM 606 sc_signal<bool> r_cc_receive_dcache_req; // cc_receive to dcache request 607 sc_signal<int> r_cc_receive_dcache_type; // cc_receive type of request 608 sc_signal<size_t> r_cc_receive_dcache_way; // cc_receive to dcache way 609 sc_signal<size_t> r_cc_receive_dcache_set; // cc_receive to dcache set 610 sc_signal<size_t> r_cc_receive_dcache_updt_tab_idx; // cc_receive update table index 611 sc_signal<paddr_t> r_cc_receive_dcache_nline; // cache line physical address 606 sc_signal<bool> r_cc_receive_dcache_req; // cc_receive to dcache request 607 sc_signal<int> r_cc_receive_dcache_type; // cc_receive type of request 608 sc_signal<size_t> r_cc_receive_dcache_way; // cc_receive to dcache way 609 sc_signal<size_t> r_cc_receive_dcache_set; // cc_receive to dcache set 610 sc_signal<size_t> r_cc_receive_dcache_updt_tab_idx; // cc_receive update table index 611 sc_signal<paddr_t> r_cc_receive_dcache_nline; // cache line physical address 612 sc_signal<bool> r_cc_receive_dcache_inval_is_config; // inval from memcache is config 612 613 613 614 /////////////////////////////////// -
branches/RWT/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp
r577 r604 2297 2297 { 2298 2298 2299 2299 2300 if ( r_mmu_mode.read() & DATA_TLB_MASK ) // DTLB activated 2300 2301 { … … 5366 5367 #endif 5367 5368 } 5368 5369 if (cache_state == CACHE_SLOT_STATE_VALID_CC) 5369 // If the line is coherente we send a classic CLEANUP 5370 // If the type of inval request from Memcache is configuration 5371 // (software), we send a classic CLEANUP 5372 if (cache_state == CACHE_SLOT_STATE_VALID_CC or r_cc_receive_dcache_inval_is_config.read()) 5370 5373 { 5371 5374 r_dcache.write_dir( way, … … 5388 5391 r_dcache_cc_send_type = CC_TYPE_CLEANUP; 5389 5392 // MODIFIER POUR DIRTY BIT // 5390 if (cache_state == CACHE_SLOT_STATE_VALID_NCC )5393 if (cache_state == CACHE_SLOT_STATE_VALID_NCC and not r_cc_receive_dcache_inval_is_config.read()) 5391 5394 { 5392 5395 r_dcache_cc_cleanup_line_ncc = true; 5393 5396 if ((r_dcache_content_state[way*m_dcache_sets+set] != LINE_CACHE_DATA_NOT_DIRTY) or r_dcache_dirty_save.read() or dirty_save) //must send data 5394 //if (true) //must send data5395 5397 { 5396 5398 r_dcache_cc_cleanup_updt_data = true; … … 6309 6311 case CC_RECEIVE_DATA_INVAL_HEADER: 6310 6312 { 6313 // initialize dspin received data 6314 uint64_t receive_data = p_dspin_m2p.data.read(); 6311 6315 // sample updt tab index in the HEADER, then skip to second flit 6312 6316 r_cc_receive_fsm = CC_RECEIVE_DATA_INVAL_NLINE; 6317 r_cc_receive_dcache_inval_is_config = DspinDhccpParam::dspin_get(receive_data, 6318 DspinDhccpParam::MULTI_INVAL_IS_CONFIG); 6313 6319 break; 6314 6320 }
Note: See TracChangeset
for help on using the changeset viewer.