Changeset 37


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

Bug correction

Location:
trunk/modules
Files:
4 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;
  • trunk/modules/vci_cc_vcache_wrapper2_v1/caba/source/include/vci_cc_vcache_wrapper2_v1.h

    r2 r37  
    373373    sc_signal<bool>         r_vci_rsp_ins_error;
    374374    sc_signal<bool>         r_vci_rsp_data_error;
     375    sc_signal<bool>         r_dcache_tlb_sc_fail;
    375376
    376377    data_t                  *r_icache_miss_buf;   
  • trunk/modules/vci_cc_vcache_wrapper2_v1/caba/source/src/vci_cc_vcache_wrapper2_v1.cpp

    r13 r37  
    275275      r_vci_rsp_ins_error("r_vci_rsp_ins_error"),
    276276      r_vci_rsp_data_error("r_vci_rsp_data_error"),
     277      r_dcache_tlb_sc_fail("r_dcache_tlb_sc_fail"),
    277278
    278279      r_vci_tgt_fsm("r_vci_tgt_fsm"),
     
    514515
    515516        r_dcache_cc_check         = false;
     517        r_dcache_tlb_sc_fail      = false;
    516518
    517519        // activity counters
     
    30063008
    30073009                if (r_dcache_inval_tlb_rsp) r_dcache_inval_tlb_rsp = false;
    3008                 if (r_dcache_inval_rsp) r_dcache_inval_rsp = false;                         }
     3010                if (r_dcache_inval_rsp) r_dcache_inval_rsp = false;                         
     3011            }
    30093012            else
    30103013            {
     
    30143017                    r_dcache_inval_tlb_rsp = false;
    30153018                    r_dcache_fsm = DCACHE_IDLE;
     3019                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    30163020                    m_cost_data_tlb_miss_frz++;
    30173021                }
     
    30193023                {
    30203024                    r_dcache_inval_rsp = false;
     3025                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    30213026                    r_dcache_fsm = DCACHE_IDLE;
    30223027                }
    3023                 else if ( r_dcache_tlb_ll_dirty_req )
     3028                else if ( r_dcache_tlb_sc_fail )
    30243029                {
     3030                    r_dcache_tlb_ll_dirty_req = true;
     3031                    r_dcache_tlb_sc_fail = false;
    30253032                    r_dcache_fsm = DCACHE_LL_DIRTY_WAIT;
    30263033                }
     
    32523259                    r_dcache_inval_tlb_rsp = false;
    32533260                    r_dcache_fsm = DCACHE_IDLE;
     3261                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    32543262                    m_cost_data_tlb_miss_frz++;
    32553263                }
     
    32573265                {
    32583266                    r_dcache_inval_rsp = false;
     3267                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    32593268                    r_dcache_fsm = DCACHE_IDLE;
    32603269                }
    3261                 else if ( r_dcache_tlb_ll_acc_req )
     3270                else if ( r_dcache_tlb_sc_fail )
    32623271                {
     3272                    r_dcache_tlb_sc_fail = false;
     3273                    r_dcache_tlb_ll_acc_req = true;
    32633274                    r_dcache_fsm = DCACHE_TLB1_LL_WAIT;
    32643275                }
     
    37133724                {
    37143725                    r_dcache_inval_tlb_rsp = false;
     3726                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    37153727                    r_dcache_fsm = DCACHE_IDLE;
    37163728                    m_cost_data_tlb_miss_frz++;
     
    37193731                {
    37203732                    r_dcache_inval_rsp = false;
     3733                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    37213734                    r_dcache_fsm = DCACHE_IDLE;
    37223735                }
    3723                 else if ( r_dcache_tlb_ll_acc_req )
     3736                else if ( r_dcache_tlb_sc_fail )
    37243737                {
     3738                    r_dcache_tlb_ll_acc_req = true;
     3739                    r_dcache_tlb_sc_fail = false;
    37253740                    r_dcache_fsm = DCACHE_TLB2_LL_WAIT;
    37263741                }
     
    46764691                    r_dcache_inval_rsp = false;
    46774692                    r_dcache_fsm = DCACHE_IDLE;
     4693                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    46784694                    m_cost_data_tlb_miss_frz++;
    46794695                }
    4680                 else if ( r_dcache_itlb_ll_acc_req )
     4696                else if ( r_dcache_tlb_sc_fail )
    46814697                {
     4698                    r_dcache_tlb_sc_fail = false;
     4699                    r_dcache_itlb_ll_acc_req = true;
    46824700                    r_dcache_fsm = DCACHE_ITLB_LL_WAIT;
    46834701                }
     
    52265244        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    52275245        {
    5228             r_dcache_itlb_ll_acc_req = true;
     5246            r_dcache_tlb_sc_fail = true;
     5247            //r_dcache_itlb_ll_acc_req = true;
    52295248        }
    52305249        r_dcache_itlb_sc_acc_req = false;
     
    53305349        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    53315350        {
    5332             r_dcache_tlb_ll_acc_req = true;
     5351            r_dcache_tlb_sc_fail = true;
     5352            //r_dcache_tlb_ll_acc_req = true;
    53335353        }
    53345354        r_dcache_tlb_sc_acc_req = false;
     
    53685388        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    53695389        {
    5370             r_dcache_tlb_ll_dirty_req = true;
     5390            r_dcache_tlb_sc_fail = true;
     5391            //r_dcache_tlb_ll_dirty_req = true;
    53715392        }
    53725393        r_dcache_tlb_sc_dirty_req = false;
Note: See TracChangeset for help on using the changeset viewer.