Changeset 577


Ignore:
Timestamp:
Nov 21, 2013, 10:46:36 AM (9 years ago)
Author:
devigne
Message:

Merge with the lastest version of trunk (Compliance with MappingTable?)

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

    r513 r577  
    311311
    312312    // STRUCTURAL PARAMETERS
    313     soclib::common::AddressDecodingTable<uint32_t, bool> m_cacheability_table;
     313    soclib::common::AddressDecodingTable<uint64_t, bool> m_cacheability_table;
    314314
    315315    const size_t                        m_srcid;
     
    403403    sc_signal<bool>         r_icache_tlb_rsp_error;      // tlb miss response error
    404404
    405     // Filp-Flop in ICACHE FSM for saving the cleanup victim request
    406     sc_signal<bool>         r_icache_cleanup_victim_req;
    407     sc_signal<paddr_t>      r_icache_cleanup_victim_nline;
    408405
    409406    // communication between ICACHE FSM and CC_SEND FSM
     
    413410    sc_signal<size_t>       r_icache_cc_send_way;           // ICACHE cc_send way
    414411    sc_signal<size_t>       r_icache_cc_send_updt_tab_idx;  // ICACHE cc_send update table index
     412   
     413    // Filp-Flop in ICACHE FSM for saving the cleanup victim request
     414    sc_signal<bool>         r_icache_cleanup_victim_req;
     415    sc_signal<paddr_t>      r_icache_cleanup_victim_nline;
    415416
    416417    ///////////////////////////////
  • branches/RWT/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp

    r538 r577  
    288288      r_icache_cc_send_way("r_icache_cc_send_way"),
    289289      r_icache_cc_send_updt_tab_idx("r_icache_cc_send_updt_tab_idx"),
     290 
     291      r_icache_cleanup_victim_req("r_icache_cleanup_victim_req"),
     292      r_icache_cleanup_victim_nline("r_icache_cleanup_victim_nline"),
    290293
    291294      r_dcache_fsm("r_dcache_fsm"),
     
    354357      r_dcache_xtn_req("r_dcache_xtn_req"),
    355358      r_dcache_xtn_opcode("r_dcache_xtn_opcode"),
    356  
     359      
    357360      r_dcache_cleanup_victim_req("r_dcache_cleanup_victim_req"),
    358361      r_dcache_cleanup_victim_nline("r_dcache_cleanup_victim_nline"),
    359 
    360       r_icache_cleanup_victim_req("r_icache_cleanup_victim_req"),
    361       r_icache_cleanup_victim_nline("r_icache_cleanup_victim_nline"),
    362362 
    363363      r_dcache_cc_send_req("r_dcache_cc_send_req"),
     
    12191219                // cacheability
    12201220                if ( not (r_mmu_mode.read() & INS_CACHE_MASK) ) cacheable = false;
    1221                 else     cacheable = m_cacheability_table[m_ireq.addr];
     1221                else     cacheable = m_cacheability_table[(uint64_t)m_ireq.addr];
    12221222            }
    12231223            else                                                        // itlb activated
     
    22962296        if ( m_dreq.valid )
    22972297        {
     2298
    22982299            if ( r_mmu_mode.read() & DATA_TLB_MASK )  // DTLB activated
    22992300            {
     
    27252726
    27262727                    if ( not (r_mmu_mode.read() & DATA_CACHE_MASK) ) cacheable = false;
    2727                     else cacheable = m_cacheability_table[m_dreq.addr];
     2728                    else cacheable = m_cacheability_table[(uint64_t)m_dreq.addr];
    27282729                }
    27292730                else                                                                       // dtlb activated
     
    43924393            bool     s_cleanup_updt_data = false;
    43934394            bool     s_cleanup_line_ncc = false;
    4394             uint32_t mask = 0;
    43954395
    43964396#ifdef INSTRUMENTATION
     
    44274427                                m_cpt_cleanup_data_dirty_word += r_dcache_dirty_word[(m_dcache_sets*way+set)*m_dcache_words + w];
    44284428                            }
    4429                             mask = r_dcache.get_cache_mask(way, set);
    4430                            // std::cout << "found a vcitim ncc dirty mask = " << mask << std::endl;
    44314429                            r_dcache_fsm = DCACHE_MISS_DATA;
    44324430                        }
     
    44344432                        {
    44354433                            s_cleanup_updt_data = false;
    4436                             mask = r_dcache.get_cache_mask(way, set);
    4437                            // std::cout << "found a vcitim ncc non dirty mask = " << mask << std::endl;
    44384434                        }
    44394435
     
    47284724            {
    47294725                r_dcache_fsm = DCACHE_MISS_DIR_UPDT;
    4730                 r_dcache.reset_cache_mask(r_dcache_miss_way.read(), r_dcache_miss_set.read());
    47314726            }
    47324727        }
     
    53405335        int      cache_state = r_dcache_cc_state.read();
    53415336        bool     dirty_save = false;
    5342         uint32_t mask = 0;
    53435337
    53445338        if (r_dcache_cc_need_write.read())
     
    54065400                        }
    54075401
    5408                         mask = r_dcache.get_cache_mask(way, set);
    5409                       //  std::cout << "cc inval ncc dirty mask = " << mask << std::endl;
    5410 
    54115402                        r_dcache_fsm          = DCACHE_CC_INVAL_DATA;
    54125403                    }
     
    54175408                                            CACHE_SLOT_STATE_ZOMBI );
    54185409 
    5419                         mask = r_dcache.get_cache_mask(way, set);
    5420                       //  std::cout << "cc inval ncc non dirty mask = " << mask << std::endl;
    5421 
    54225410                        r_dcache_cc_cleanup_updt_data = false;
    54235411                        r_dcache_fsm = r_dcache_fsm_cc_save.read();
Note: See TracChangeset for help on using the changeset viewer.