Changeset 56
- Timestamp:
- Jun 16, 2010, 1:52:39 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/vci_cc_vcache_wrapper2_v1/caba/source/src/vci_cc_vcache_wrapper2_v1.cpp
r55 r56 4059 4059 case DCACHE_ITLB_INVAL: 4060 4060 { 4061 // external cache invalidate request 4062 if ( r_tgt_dcache_req ) 4063 { 4064 r_dcache_fsm = DCACHE_CC_CHECK; 4065 r_dcache_fsm_save = r_dcache_fsm; 4066 break; 4067 } 4061 4068 if ( !r_dcache_xtn_req ) 4062 4069 { … … 4238 4245 case DCACHE_DCACHE_SYNC: 4239 4246 { 4247 // external cache invalidate request 4248 if ( r_tgt_dcache_req ) 4249 { 4250 r_dcache_fsm = DCACHE_CC_CHECK; 4251 r_dcache_fsm_save = r_dcache_fsm; 4252 break; 4253 } 4240 4254 if ( !r_dcache_write_req ) 4241 4255 { … … 4402 4416 } 4403 4417 4404 if(dreq.type == iss_t::DATA_SC)4405 {4406 if(r_dcache_cleanup_req) break;4407 size_t way = 0;4408 size_t set = 0;4409 // Simulate an invalidate request4410 r_dcache_cleanup_req = r_dcache.inval(r_dcache_paddr_save, &way, &set); // !!!!!!!!!4411 r_dcache_cleanup_line = r_dcache_paddr_save.read() >> (uint32_log2(m_dcache_words)+2);4412 m_cpt_cc_cleanup_data++;4413 4414 if ( r_dcache_in_itlb[way*m_dcache_sets+set] || r_dcache_in_dtlb[way*m_dcache_sets+set] )4415 {4416 // ins tlb invalidate verification4417 r_dcache_itlb_inval_req = r_dcache_in_itlb[way*m_dcache_sets+set];4418 r_dcache_itlb_inval_line = r_dcache_paddr_save.read() >> (uint32_log2(m_dcache_words)+2);4419 r_dcache_in_itlb[way*m_dcache_sets+set] = false;4420 4421 // data tlb invalidate verification4422 r_dcache_dtlb_inval_req = r_dcache_in_dtlb[way*m_dcache_sets+set];4423 r_dcache_dtlb_inval_line = r_dcache_paddr_save.read() >> (uint32_log2(m_dcache_words)+2);4424 r_dcache_in_dtlb[way*m_dcache_sets+set] = false;4425 r_dcache_fsm = DCACHE_TLB_CC_INVAL;4426 r_dcache_fsm_save = r_dcache_fsm;4427 break;4428 }4429 4430 }4431 4418 drsp.valid = true; 4432 4419 drsp.rdata = r_dcache_miss_buf[0]; … … 4969 4956 4970 4957 if (((r_dcache_fsm_save == DCACHE_BIS)||(r_dcache_fsm_save == DCACHE_MISS_WAIT) || 4971 (r_dcache_fsm_save == DCACHE_ UNC_WAIT)||(r_dcache_fsm_save == DCACHE_MISS_UPDT)) &&4958 (r_dcache_fsm_save == DCACHE_MISS_UPDT)) && 4972 4959 (r_dcache_tlb_nline.read() == r_dcache_dtlb_inval_line.read())) 4973 4960 {
Note: See TracChangeset
for help on using the changeset viewer.