- Timestamp:
- Aug 27, 2013, 6:21:19 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/vci_mem_cache/caba/source/include/mem_cache_directory.h
r489 r499 225 225 226 226 #define L2 soclib::common::uint32_log2 227 const size_t set = (size_t)(address >> (L2(m_words) + 2)) & (m_sets - 1);228 const tag_t tag = (tag_t)(address >> (L2(m_sets) + L2(m_words) + 2));227 const size_t set = (size_t)(address >> (L2(m_words) + 2)) & (m_sets - 1); 228 const tag_t tag = (tag_t)(address >> (L2(m_sets) + L2(m_words) + 2)); 229 229 #undef L2 230 230 231 bool hit = false; 232 for ( size_t i=0 ; i<m_ways ; i++ ) { 233 bool equal = ( m_dir_tab[set][i].tag == tag ); 234 bool valid = m_dir_tab[set][i].valid; 235 hit = equal && valid; 236 if ( hit ) { 237 way = i; 238 break; 231 bool hit = false; 232 for ( size_t i=0 ; i<m_ways ; i++ ) 233 { 234 bool equal = ( m_dir_tab[set][i].tag == tag ); 235 bool valid = m_dir_tab[set][i].valid; 236 hit = equal && valid; 237 if ( hit ) 238 { 239 way = i; 240 break; 241 } 242 } 243 if ( hit ) 244 { 245 m_lru_tab[set][way].recent = true; 246 return DirectoryEntry(m_dir_tab[set][way]); 239 247 } 240 } 241 if ( hit ) { 242 m_lru_tab[set][way].recent = true; 243 return DirectoryEntry(m_dir_tab[set][way]); 244 } else { 245 return DirectoryEntry(); 246 } 248 else 249 { 250 return DirectoryEntry(); 251 } 247 252 } // end read() 248 253
Note: See TracChangeset
for help on using the changeset viewer.