Changeset 60
- Timestamp:
- Jul 2, 2010, 8:37:11 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/vci_cc_vcache_wrapper_v1/caba/source/src/vci_cc_vcache_wrapper_v1.cpp
r52 r60 546 546 << " icache fsm: " << icache_fsm_state_str[r_icache_fsm] 547 547 << " cmd fsm: " << cmd_fsm_state_str[r_vci_cmd_fsm] 548 << " rsp fsm: " << rsp_fsm_state_str[r_vci_rsp_fsm] << std::endl;548 << " rsp fsm: " << rsp_fsm_state_str[r_vci_rsp_fsm] 549 549 << " itlb inval fsm: " << inval_itlb_fsm_state_str[r_inval_itlb_fsm] 550 << " dtlb inval fsm: " << inval_dtlb_fsm_state_str[r_inval_dtlb_fsm] 551 << " cleanup fsm: " << cleanup_fsm_state_str[r_cleanup_fsm] << std::endl; 550 << " dtlb inval fsm: " << inval_dtlb_fsm_state_str[r_inval_dtlb_fsm] << std::endl; 552 551 #endif 553 552 … … 1158 1157 if ( r_vci_rsp_ins_error ) r_vci_rsp_ins_error = false; 1159 1158 r_icache_fsm = ICACHE_IDLE; 1159 1160 r_icache_cleanup_req = true; 1161 r_icache_cleanup_line = r_icache_paddr_save.read() >> (uint32_log2(m_icache_words) + 2); 1162 r_icache_cleanup_type = TLB_CLEANUP; 1163 m_cpt_cc_cleanup_ins++; 1160 1164 break; 1161 1165 } … … 1171 1175 r_icache_bad_vaddr = r_icache_vaddr_req.read(); 1172 1176 r_icache_fsm = ICACHE_ERROR; 1177 1178 r_icache_cleanup_req = true; 1179 r_icache_cleanup_line = r_icache_paddr_save.read() >> (uint32_log2(m_icache_words) + 2); 1180 r_icache_cleanup_type = TLB_CLEANUP; 1181 m_cpt_cc_cleanup_ins++; 1173 1182 } 1174 1183 else if ( (r_icache_miss_buf[0] & PTE_T_MASK ) >> PTE_T_SHIFT ) // PTD … … 1406 1415 if ( r_vci_rsp_ins_error ) r_vci_rsp_ins_error = false; 1407 1416 r_icache_fsm = ICACHE_IDLE; 1417 1418 r_icache_cleanup_req = true; 1419 r_icache_cleanup_line = r_icache_paddr_save.read() >> (uint32_log2(m_icache_words) + 2); 1420 r_icache_cleanup_type = TLB_CLEANUP; 1421 m_cpt_cc_cleanup_ins++; 1408 1422 break; 1409 1423 } … … 1418 1432 r_icache_bad_vaddr = r_icache_vaddr_req.read(); 1419 1433 r_icache_fsm = ICACHE_ERROR; 1434 1435 r_icache_cleanup_req = true; 1436 r_icache_cleanup_line = r_icache_paddr_save.read() >> (uint32_log2(m_icache_words) + 2); 1437 r_icache_cleanup_type = TLB_CLEANUP; 1438 m_cpt_cc_cleanup_ins++; 1420 1439 } 1421 1440 else … … 1940 1959 1941 1960 /* activity counter */ 1942 if ( (( r_icache_fsm_save == ICACHE_BIS ) ||( r_icache_fsm_save == ICACHE_MISS_WAIT ) || ( r_icache_fsm_save== ICACHE_MISS_UPDT ) ) && ( ireq.valid ) )1943 { 1944 m_cost_ins_miss_frz++; 1945 } 1946 if( (( r_icache_fsm_save == ICACHE_TLB1_READ ) || ( r_icache_fsm_save== ICACHE_TLB2_READ ) ||1947 ( r_icache_fsm_save == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_LL_WAIT ) ||1948 ( r_icache_fsm_save == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_SC_WAIT ) ||1949 ( r_icache_fsm_save == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save== ICACHE_TLB2_UPDT )) && (ireq.valid) )1961 if ( (( r_icache_fsm_save.read() == ICACHE_BIS ) ||( r_icache_fsm_save.read() == ICACHE_MISS_WAIT ) || ( r_icache_fsm_save.read() == ICACHE_MISS_UPDT ) ) && ( ireq.valid ) ) 1962 { 1963 m_cost_ins_miss_frz++; 1964 } 1965 if( (( r_icache_fsm_save.read() == ICACHE_TLB1_READ ) || ( r_icache_fsm_save.read() == ICACHE_TLB2_READ ) || 1966 ( r_icache_fsm_save.read() == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_LL_WAIT ) || 1967 ( r_icache_fsm_save.read() == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_SC_WAIT ) || 1968 ( r_icache_fsm_save.read() == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save.read() == ICACHE_TLB2_UPDT )) && (ireq.valid) ) 1950 1969 { 1951 1970 m_cost_ins_tlb_miss_frz++; 1952 1971 } 1953 1972 1954 if( (( r_icache_fsm_save == ICACHE_MISS_WAIT ) || ( r_icache_fsm_save== ICACHE_MISS_UPDT ) ) &&1973 if( (( r_icache_fsm_save.read() == ICACHE_MISS_WAIT ) || ( r_icache_fsm_save.read() == ICACHE_MISS_UPDT ) ) && 1955 1974 ((r_icache_paddr_save.read() & ~((m_icache_words<<2)-1)) == (r_tgt_addr.read() & ~((m_icache_words<<2)-1))) ) 1956 1975 { … … 1980 1999 { 1981 2000 /* activity counter */ 1982 if ( (( r_icache_fsm_save == ICACHE_BIS ) ||( r_icache_fsm_save == ICACHE_MISS_WAIT ) || ( r_icache_fsm_save== ICACHE_MISS_UPDT ) ) && ( ireq.valid ) )2001 if ( (( r_icache_fsm_save.read() == ICACHE_BIS ) ||( r_icache_fsm_save.read() == ICACHE_MISS_WAIT ) || ( r_icache_fsm_save.read() == ICACHE_MISS_UPDT ) ) && ( ireq.valid ) ) 1983 2002 { 1984 2003 m_cost_ins_miss_frz++; 1985 2004 } 1986 2005 1987 if( (( r_icache_fsm_save == ICACHE_TLB1_READ ) || ( r_icache_fsm_save== ICACHE_TLB2_READ ) ||1988 ( r_icache_fsm_save == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_LL_WAIT ) ||1989 ( r_icache_fsm_save == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_SC_WAIT ) ||1990 ( r_icache_fsm_save == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save== ICACHE_TLB2_UPDT )) && (ireq.valid) )2006 if( (( r_icache_fsm_save.read() == ICACHE_TLB1_READ ) || ( r_icache_fsm_save.read() == ICACHE_TLB2_READ ) || 2007 ( r_icache_fsm_save.read() == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_LL_WAIT ) || 2008 ( r_icache_fsm_save.read() == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_SC_WAIT ) || 2009 ( r_icache_fsm_save.read() == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save.read() == ICACHE_TLB2_UPDT )) && (ireq.valid) ) 1991 2010 { 1992 2011 m_cost_ins_tlb_miss_frz++; … … 1996 2015 1997 2016 // invalidate cache 1998 if( (( r_icache_fsm_save == ICACHE_TLB1_READ ) || ( r_icache_fsm_save== ICACHE_TLB2_READ ) ||1999 ( r_icache_fsm_save == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_LL_WAIT ) ||2000 ( r_icache_fsm_save == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_SC_WAIT ) ||2001 ( r_icache_fsm_save == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save== ICACHE_TLB2_UPDT )) &&2017 if( (( r_icache_fsm_save.read() == ICACHE_TLB1_READ ) || ( r_icache_fsm_save.read() == ICACHE_TLB2_READ ) || 2018 ( r_icache_fsm_save.read() == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_LL_WAIT ) || 2019 ( r_icache_fsm_save.read() == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_SC_WAIT ) || 2020 ( r_icache_fsm_save.read() == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save.read() == ICACHE_TLB2_UPDT )) && 2002 2021 ((r_icache_paddr_save.read() & ~((m_icache_words<<2)-1)) == r_tgt_addr.read()) ) 2003 2022 { … … 2012 2031 2013 2032 if( (/*( r_icache_fsm_save == ICACHE_TLB1_READ ) || ( r_icache_fsm_save == ICACHE_TLB2_READ ) ||*/ 2014 ( r_icache_fsm_save == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_LL_WAIT ) ||2015 ( r_icache_fsm_save == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save== ICACHE_TLB2_SC_WAIT ) ||2016 ( r_icache_fsm_save == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save== ICACHE_TLB2_UPDT )) &&2033 ( r_icache_fsm_save.read() == ICACHE_TLB1_LL_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_LL_WAIT ) || 2034 ( r_icache_fsm_save.read() == ICACHE_TLB1_SC_WAIT )|| ( r_icache_fsm_save.read() == ICACHE_TLB2_SC_WAIT ) || 2035 ( r_icache_fsm_save.read() == ICACHE_TLB1_UPDT ) || ( r_icache_fsm_save.read() == ICACHE_TLB2_UPDT )) && 2017 2036 ((r_icache_paddr_save.read() & ~((m_icache_words<<2)-1)) == r_tgt_addr.read()) ) 2018 2037 { … … 2984 3003 r_dcache_bad_vaddr = dreq.addr; 2985 3004 r_dcache_fsm = DCACHE_ERROR; 3005 3006 // unmapped cleanup in L2 3007 r_dcache_cleanup_req = true; 3008 r_dcache_cleanup_line = r_dcache_tlb_paddr.read() >> (uint32_log2(m_dcache_words)+2); 3009 r_dcache_cleanup_type = TLB_CLEANUP; 3010 m_cpt_cc_cleanup_data++; 2986 3011 } 2987 3012 else if ( (r_dcache_miss_buf[0] & PTE_T_MASK) >> PTE_T_SHIFT ) // PTD … … 3258 3283 r_dcache_bad_vaddr = dreq.addr; 3259 3284 r_dcache_fsm = DCACHE_ERROR; 3285 3286 r_dcache_cleanup_req = true; 3287 r_dcache_cleanup_line = r_dcache_tlb_paddr.read() >> (uint32_log2(m_dcache_words) + 2); 3288 r_dcache_cleanup_type = TLB_CLEANUP; 3289 m_cpt_cc_cleanup_data++; 3260 3290 } 3261 3291 else if ( (r_dcache_miss_buf[0] & PTE_T_MASK) >> PTE_T_SHIFT ) // PTD … … 3495 3525 case DCACHE_ICACHE_FLUSH: 3496 3526 case DCACHE_ICACHE_INVAL: 3527 case DCACHE_ICACHE_INVAL_PA: 3497 3528 case DCACHE_ITLB_INVAL: 3498 3529 { 3530 // external cache invalidate request 3531 if ( r_tgt_dcache_req ) 3532 { 3533 r_dcache_fsm = DCACHE_CC_CHECK; 3534 r_dcache_fsm_save = r_dcache_fsm; 3535 break; 3536 } 3537 3499 3538 if ( !r_dcache_xtn_req ) 3500 3539 { … … 3636 3675 case DCACHE_DCACHE_SYNC: 3637 3676 { 3677 // external cache invalidate request 3678 if ( r_tgt_dcache_req ) 3679 { 3680 r_dcache_fsm = DCACHE_CC_CHECK; 3681 r_dcache_fsm_save = r_dcache_fsm; 3682 break; 3683 } 3684 3638 3685 if ( !r_dcache_write_req ) 3639 3686 { … … 3777 3824 r_dcache_inval_tlb_rsp = false; 3778 3825 } 3779 3826 /* 3780 3827 if (dreq.type == iss_t::DATA_SC) 3781 3828 { … … 3785 3832 m_cpt_cc_cleanup_data++; 3786 3833 r_dcache_cleanup_line = r_dcache_paddr_save.read() >> (uint32_log2(m_dcache_words)+2); 3787 } 3834 } 3835 */ 3788 3836 drsp.valid = true; 3789 3837 drsp.rdata = r_dcache_miss_buf[0]; … … 3883 3931 3884 3932 /* activity counter */ 3885 if ( (( r_dcache_fsm_save == DCACHE_BIS ) ||( r_dcache_fsm_save == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save== DCACHE_MISS_UPDT ) ) && ( dreq.valid ) )3933 if ( (( r_dcache_fsm_save.read() == DCACHE_BIS ) ||( r_dcache_fsm_save.read() == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_MISS_UPDT ) ) && ( dreq.valid ) ) 3886 3934 { 3887 3935 m_cost_data_miss_frz++; 3888 3936 } 3889 if( (( r_dcache_fsm_save == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save== DCACHE_TLB2_READ ) ||3890 ( r_dcache_fsm_save == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_LL_WAIT ) ||3891 ( r_dcache_fsm_save == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_SC_WAIT ) ||3892 ( r_dcache_fsm_save == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save== DCACHE_TLB2_UPDT )) && (dreq.valid) )3937 if( (( r_dcache_fsm_save.read() == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_READ ) || 3938 ( r_dcache_fsm_save.read() == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_LL_WAIT ) || 3939 ( r_dcache_fsm_save.read() == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_SC_WAIT ) || 3940 ( r_dcache_fsm_save.read() == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_UPDT )) && (dreq.valid) ) 3893 3941 { 3894 3942 m_cost_data_tlb_miss_frz++; … … 3896 3944 3897 3945 if(( /*( r_dcache_fsm_save == DCACHE_UNC_WAIT ) ||*/ 3898 ( r_dcache_fsm_save == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save== DCACHE_MISS_UPDT ) ) &&3946 ( r_dcache_fsm_save.read() == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_MISS_UPDT ) ) && 3899 3947 ( (r_dcache_paddr_save.read() & ~((m_dcache_words<<2)-1)) == (r_tgt_addr.read() & ~((m_dcache_words<<2)-1)))) 3900 3948 { … … 3940 3988 { 3941 3989 /* activity counter */ 3942 if ( (( r_dcache_fsm_save == DCACHE_BIS ) ||( r_dcache_fsm_save == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save== DCACHE_MISS_UPDT ) ) && ( dreq.valid ) )3990 if ( (( r_dcache_fsm_save.read() == DCACHE_BIS ) ||( r_dcache_fsm_save.read() == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_MISS_UPDT ) ) && ( dreq.valid ) ) 3943 3991 { 3944 3992 m_cost_data_miss_frz++; 3945 3993 } 3946 if( (( r_dcache_fsm_save == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save== DCACHE_TLB2_READ ) ||3947 ( r_dcache_fsm_save == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_LL_WAIT ) ||3948 ( r_dcache_fsm_save == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_SC_WAIT ) ||3949 ( r_dcache_fsm_save == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save== DCACHE_TLB2_UPDT )) && (dreq.valid) )3994 if( (( r_dcache_fsm_save.read() == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_READ ) || 3995 ( r_dcache_fsm_save.read() == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_LL_WAIT ) || 3996 ( r_dcache_fsm_save.read() == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_SC_WAIT ) || 3997 ( r_dcache_fsm_save.read() == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_UPDT )) && (dreq.valid) ) 3950 3998 { 3951 3999 m_cost_data_tlb_miss_frz++; … … 3969 4017 { 3970 4018 /* activity counter */ 3971 if ( (( r_dcache_fsm_save == DCACHE_BIS ) ||( r_dcache_fsm_save == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save== DCACHE_MISS_UPDT ) ) && ( dreq.valid ) )4019 if ( (( r_dcache_fsm_save.read() == DCACHE_BIS ) ||( r_dcache_fsm_save.read() == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_MISS_UPDT ) ) && ( dreq.valid ) ) 3972 4020 { 3973 4021 m_cost_data_miss_frz++; 3974 4022 } 3975 if( (( r_dcache_fsm_save == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save== DCACHE_TLB2_READ ) ||3976 ( r_dcache_fsm_save == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_LL_WAIT ) ||3977 ( r_dcache_fsm_save == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_SC_WAIT ) ||3978 ( r_dcache_fsm_save == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save== DCACHE_TLB2_UPDT )) && (dreq.valid) )4023 if( (( r_dcache_fsm_save.read() == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_READ ) || 4024 ( r_dcache_fsm_save.read() == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_LL_WAIT ) || 4025 ( r_dcache_fsm_save.read() == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_SC_WAIT ) || 4026 ( r_dcache_fsm_save.read() == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_UPDT )) && (dreq.valid) ) 3979 4027 { 3980 4028 m_cost_data_tlb_miss_frz++; … … 3998 4046 { 3999 4047 /* activity counter */ 4000 if ( (( r_dcache_fsm_save == DCACHE_BIS ) ||( r_dcache_fsm_save == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save== DCACHE_MISS_UPDT ) ) && ( dreq.valid ) )4048 if ( (( r_dcache_fsm_save.read() == DCACHE_BIS ) ||( r_dcache_fsm_save.read() == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_MISS_UPDT ) ) && ( dreq.valid ) ) 4001 4049 { 4002 4050 m_cost_data_miss_frz++; 4003 4051 } 4004 if( (( r_dcache_fsm_save == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save== DCACHE_TLB2_READ ) ||4005 ( r_dcache_fsm_save == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_LL_WAIT ) ||4006 ( r_dcache_fsm_save == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_SC_WAIT ) ||4007 ( r_dcache_fsm_save == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save== DCACHE_TLB2_UPDT )) && (dreq.valid) )4052 if( (( r_dcache_fsm_save.read() == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_READ ) || 4053 ( r_dcache_fsm_save.read() == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_LL_WAIT ) || 4054 ( r_dcache_fsm_save.read() == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_SC_WAIT ) || 4055 ( r_dcache_fsm_save.read() == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_UPDT )) && (dreq.valid) ) 4008 4056 { 4009 4057 m_cost_data_tlb_miss_frz++; … … 4027 4075 { 4028 4076 /* activity counter */ 4029 if ( (( r_dcache_fsm_save == DCACHE_BIS ) ||( r_dcache_fsm_save == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save== DCACHE_MISS_UPDT ) ) && ( dreq.valid ) )4077 if ( (( r_dcache_fsm_save.read() == DCACHE_BIS ) ||( r_dcache_fsm_save.read() == DCACHE_MISS_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_MISS_UPDT ) ) && ( dreq.valid ) ) 4030 4078 { 4031 4079 m_cost_data_miss_frz++; 4032 4080 } 4033 if( (( r_dcache_fsm_save == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save== DCACHE_TLB2_READ ) ||4034 ( r_dcache_fsm_save == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_LL_WAIT ) ||4035 ( r_dcache_fsm_save == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save== DCACHE_TLB2_SC_WAIT ) ||4036 ( r_dcache_fsm_save == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save== DCACHE_TLB2_UPDT )) && (dreq.valid) )4081 if( (( r_dcache_fsm_save.read() == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_READ ) || 4082 ( r_dcache_fsm_save.read() == DCACHE_TLB1_LL_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_LL_WAIT ) || 4083 ( r_dcache_fsm_save.read() == DCACHE_TLB1_SC_WAIT )|| ( r_dcache_fsm_save.read() == DCACHE_TLB2_SC_WAIT ) || 4084 ( r_dcache_fsm_save.read() == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_UPDT )) && (dreq.valid) ) 4037 4085 { 4038 4086 m_cost_data_tlb_miss_frz++; 4039 4087 } 4040 4088 4041 paddr_t dcache_tlb_nline = 0;4042 4043 4089 if ( r_dcache_tlb_inval_req ) break; 4044 4090 4045 if( (( r_dcache_fsm_save == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save== DCACHE_TLB2_READ ) ||4046 ( r_dcache_fsm_save == DCACHE_TLB1_LL_WAIT ) || ( r_dcache_fsm_save== DCACHE_TLB2_LL_WAIT ) ||4047 ( r_dcache_fsm_save == DCACHE_TLB1_SC_WAIT ) || ( r_dcache_fsm_save== DCACHE_TLB2_SC_WAIT ) ||4048 ( r_dcache_fsm_save == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save== DCACHE_TLB2_UPDT ) ||4049 ( r_dcache_fsm_save == DCACHE_LL_DIRTY_WAIT ) || ( r_dcache_fsm_save== DCACHE_SC_DIRTY_WAIT ) ||4050 ( r_dcache_fsm_save == DCACHE_WRITE_DIRTY )) &&4091 if( (( r_dcache_fsm_save.read() == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_READ ) || 4092 ( r_dcache_fsm_save.read() == DCACHE_TLB1_LL_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_LL_WAIT ) || 4093 ( r_dcache_fsm_save.read() == DCACHE_TLB1_SC_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_SC_WAIT ) || 4094 ( r_dcache_fsm_save.read() == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_UPDT ) || 4095 ( r_dcache_fsm_save.read() == DCACHE_LL_DIRTY_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_SC_DIRTY_WAIT ) || 4096 ( r_dcache_fsm_save.read() == DCACHE_WRITE_DIRTY )) && 4051 4097 ((r_dcache_tlb_paddr.read() & ~((m_dcache_words<<2)-1)) == r_tgt_addr.read()) ) 4052 4098 { … … 4062 4108 4063 4109 if( (/*( r_dcache_fsm_save == DCACHE_TLB1_READ ) || ( r_dcache_fsm_save == DCACHE_TLB2_READ ) ||*/ 4064 ( r_dcache_fsm_save == DCACHE_TLB1_LL_WAIT ) || ( r_dcache_fsm_save== DCACHE_TLB2_LL_WAIT ) ||4065 ( r_dcache_fsm_save == DCACHE_TLB1_SC_WAIT ) || ( r_dcache_fsm_save== DCACHE_TLB2_SC_WAIT ) ||4066 ( r_dcache_fsm_save == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save== DCACHE_TLB2_UPDT ) ||4067 ( r_dcache_fsm_save == DCACHE_LL_DIRTY_WAIT ) || ( r_dcache_fsm_save== DCACHE_SC_DIRTY_WAIT ) ||4068 ( r_dcache_fsm_save == DCACHE_WRITE_DIRTY )) &&4110 ( r_dcache_fsm_save.read() == DCACHE_TLB1_LL_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_LL_WAIT ) || 4111 ( r_dcache_fsm_save.read() == DCACHE_TLB1_SC_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_SC_WAIT ) || 4112 ( r_dcache_fsm_save.read() == DCACHE_TLB1_UPDT ) || ( r_dcache_fsm_save.read() == DCACHE_TLB2_UPDT ) || 4113 ( r_dcache_fsm_save.read() == DCACHE_LL_DIRTY_WAIT ) || ( r_dcache_fsm_save.read() == DCACHE_SC_DIRTY_WAIT ) || 4114 ( r_dcache_fsm_save.read() == DCACHE_WRITE_DIRTY )) && 4069 4115 ((r_dcache_tlb_paddr.read() & ~((m_dcache_words<<2)-1)) == r_tgt_addr.read()) ) 4070 4116 {
Note: See TracChangeset
for help on using the changeset viewer.