Ignore:
Timestamp:
Jun 1, 2010, 1:49:54 AM (15 years ago)
Author:
gao
Message:

Bug correction

Location:
trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/include/vci_cc_vcache_wrapper2_multi.h

    r4 r37  
    393393    sc_signal<bool>         r_vci_rsp_ins_ok;
    394394    sc_signal<bool>         r_vci_rsp_data_ok;
     395    sc_signal<bool>         r_dcache_tlb_sc_fail;
    395396
    396397    data_t                  *r_icache_miss_buf;   
  • trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/src/vci_cc_vcache_wrapper2_multi.cpp

    r18 r37  
    279279      r_vci_rsp_ins_ok("r_vci_rsp_ins_ok"),
    280280      r_vci_rsp_data_ok("r_vci_rsp_data_ok"),
     281      r_dcache_tlb_sc_fail("r_dcache_tlb_sc_fail"),
    281282
    282283      r_vci_tgt_fsm("r_vci_tgt_fsm"),
     
    520521
    521522        r_dcache_cc_check         = false;
     523        r_dcache_tlb_sc_fail      = false;
    522524
    523525        // activity counters
     
    30003002                    r_dcache_inval_tlb_rsp = false;
    30013003                    r_dcache_fsm = DCACHE_IDLE;
     3004                    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
    30023005                    m_cost_data_tlb_miss_frz++;
    30033006                }
     
    30063009                    r_dcache_inval_rsp = false;
    30073010                    r_dcache_fsm = DCACHE_IDLE;
     3011                    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
    30083012                }
    3009                 else if ( r_dcache_tlb_ll_dirty_req )
     3013                else if ( r_dcache_tlb_sc_fail )
    30103014                {
     3015                    r_dcache_tlb_ll_dirty_req = true;
    30113016                    r_vci_rsp_data_ok = false;
     3017                    r_dcache_tlb_sc_fail = false;
    30123018                    r_dcache_fsm = DCACHE_LL_DIRTY_WAIT;
    30133019                }
     
    32453251                    r_dcache_inval_tlb_rsp = false;
    32463252                    r_dcache_fsm = DCACHE_IDLE;
     3253                    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
    32473254                    m_cost_data_tlb_miss_frz++;
    32483255                }
     
    32513258                    r_dcache_inval_rsp = false;
    32523259                    r_dcache_fsm = DCACHE_IDLE;
     3260                    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
    32533261                }
    3254                 else if ( r_dcache_tlb_ll_acc_req )
     3262                else if ( r_dcache_tlb_sc_fail )
    32553263                {
     3264                    r_dcache_tlb_ll_acc_req = true;
    32563265                    r_vci_rsp_data_ok = false;
     3266                    r_dcache_tlb_sc_fail = false;
    32573267                    r_dcache_fsm = DCACHE_TLB1_LL_WAIT;
    32583268                }
     
    37173727                    r_dcache_inval_tlb_rsp = false;
    37183728                    r_dcache_fsm = DCACHE_IDLE;
     3729                    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
    37193730                    m_cost_data_tlb_miss_frz++;
    37203731                }
     
    37233734                    r_dcache_inval_rsp = false;
    37243735                    r_dcache_fsm = DCACHE_IDLE;
     3736                    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
    37253737                }
    3726                 else if ( r_dcache_tlb_ll_acc_req )
     3738                else if ( r_dcache_tlb_sc_fail )
    37273739                {
     3740                    r_dcache_tlb_ll_acc_req = true;
     3741                    r_dcache_tlb_sc_fail = false;
    37283742                    r_vci_rsp_data_ok = false;
    37293743                    r_dcache_fsm = DCACHE_TLB2_LL_WAIT;
     
    46854699                    r_dcache_inval_rsp = false;
    46864700                    r_dcache_fsm = DCACHE_IDLE;
     4701                    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
    46874702                    m_cost_data_tlb_miss_frz++;
    46884703                }
    4689                 else if ( r_dcache_itlb_ll_acc_req )
     4704                else if ( r_dcache_tlb_sc_fail )
    46904705                {
     4706                    r_dcache_itlb_ll_acc_req = true;
    46914707                    r_vci_rsp_data_ok = false;
     4708                    r_dcache_tlb_sc_fail = false;
    46924709                    r_dcache_fsm = DCACHE_ITLB_LL_WAIT;
    46934710                }
     
    52915308        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    52925309        {
    5293             r_dcache_itlb_ll_acc_req = true;
     5310            r_dcache_tlb_sc_fail = true;
    52945311        }
    52955312        r_vci_rsp_data_ok = true;
     
    53945411        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    53955412        {
    5396             r_dcache_tlb_ll_acc_req = true;
     5413            r_dcache_tlb_sc_fail = true;
    53975414        }
    53985415        r_vci_rsp_data_ok = true;
     
    54325449        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    54335450        {
    5434             r_dcache_tlb_ll_dirty_req = true;
     5451            r_dcache_tlb_sc_fail = true;
    54355452        }
    54365453        r_vci_rsp_data_ok = true;
Note: See TracChangeset for help on using the changeset viewer.