Ignore:
Timestamp:
Sep 16, 2013, 4:57:49 PM (11 years ago)
Author:
haoliu
Message:

(RWT)Merged the modification for the table llsc in memcache.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/RWT/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp

    r525 r526  
    29872987        // erase any possible new reservation when we release the lock on the
    29882988        // directory
    2989         m_llsc_table.sw(m_nline[(addr_t)r_write_address.read()],r_write_word_index.read(),r_write_word_index.read()+r_write_word_count.read());
    2990 
    2991         //m_llsc_table.sw(r_write_address.read());
     2989#define L2 soclib::common::uint32_log2
     2990        addr_t min = r_write_address.read();
     2991        addr_t max = r_write_address.read() +
     2992                   ((r_write_word_count.read()-1) << L2(vci_param_int::B));
     2993#undef L2
     2994        m_llsc_table.sw(min, max);
    29922995
    29932996        r_write_fsm = WRITE_DIR_LOCK;
     
    46774680      if (!r_xram_rsp_victim_coherent.read())
    46784681      {
    4679         //m_llsc_table.sw(r_xram_rsp_victim_nline.read()*m_words*4);
    4680         m_llsc_table.sw(r_xram_rsp_victim_nline.read(), 0, m_words - 1);
     4682        addr_t min = r_xram_rsp_victim_nline.read()*m_words*4 ;
     4683        addr_t max = r_xram_rsp_victim_nline.read()*m_words*4 + (m_words - 1)*4;
     4684        m_llsc_table.sw(min, max);
    46814685      }
    46824686#if DEBUG_MEMC_XRAM_RSP
     
    53185322          m_cache_data.write(way, set, word, r_cleanup_data[word].read(), 0xF);
    53195323        }
    5320         m_llsc_table.sw(r_cleanup_nline.read(), 0 , m_words - 1);
    5321         //m_llsc_table.sw(r_cleanup_nline.read()*m_words*4);
     5324        addr_t min = r_cleanup_nline.read()*m_words*4 ;
     5325        addr_t max = r_cleanup_nline.read()*m_words*4 + (m_words - 1)*4;
     5326        m_llsc_table.sw(min, max);
    53225327      }
    53235328
     
    61516156                        << " | @ " << std::hex << m_cmd_cas_addr_fifo.read()
    61526157                        << " | WRITE (cas triggered)" << std::endl;*/
    6153       m_llsc_table.sw(m_nline[(addr_t)m_cmd_cas_addr_fifo.read()],m_x[(addr_t)(m_cmd_cas_addr_fifo.read())],m_x[(addr_t)(m_cmd_cas_addr_fifo.read())]);
    6154 
     6158
     6159      m_llsc_table.sw(m_cmd_cas_addr_fifo.read(), m_cmd_cas_addr_fifo.read());
    61556160      // test coherence request
    61566161      if(r_cas_count.read())   // replicated line
Note: See TracChangeset for help on using the changeset viewer.