diff options
Diffstat (limited to 'src/mem/ruby/system/LRUPolicy.hh')
-rw-r--r-- | src/mem/ruby/system/LRUPolicy.hh | 79 |
1 files changed, 41 insertions, 38 deletions
diff --git a/src/mem/ruby/system/LRUPolicy.hh b/src/mem/ruby/system/LRUPolicy.hh index 55b1eec6e..b1b9d7478 100644 --- a/src/mem/ruby/system/LRUPolicy.hh +++ b/src/mem/ruby/system/LRUPolicy.hh @@ -26,26 +26,26 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef LRUPOLICY_H -#define LRUPOLICY_H +#ifndef __MEM_RUBY_SYSTEM_LRUPOLICY_HH__ +#define __MEM_RUBY_SYSTEM_LRUPOLICY_HH__ #include "mem/ruby/system/AbstractReplacementPolicy.hh" /* Simple true LRU replacement policy */ -class LRUPolicy : public AbstractReplacementPolicy { - public: - - LRUPolicy(Index num_sets, Index assoc); - ~LRUPolicy(); +class LRUPolicy : public AbstractReplacementPolicy +{ + public: + LRUPolicy(Index num_sets, Index assoc); + ~LRUPolicy(); - void touch(Index set, Index way, Time time); - Index getVictim(Index set) const; + void touch(Index set, Index way, Time time); + Index getVictim(Index set) const; }; inline LRUPolicy::LRUPolicy(Index num_sets, Index assoc) - : AbstractReplacementPolicy(num_sets, assoc) + : AbstractReplacementPolicy(num_sets, assoc) { } @@ -54,39 +54,42 @@ LRUPolicy::~LRUPolicy() { } -inline -void LRUPolicy::touch(Index set, Index index, Time time){ - assert(index >= 0 && index < m_assoc); - assert(set >= 0 && set < m_num_sets); +inline void +LRUPolicy::touch(Index set, Index index, Time time) +{ + assert(index >= 0 && index < m_assoc); + assert(set >= 0 && set < m_num_sets); - m_last_ref_ptr[set][index] = time; + m_last_ref_ptr[set][index] = time; } -inline -Index LRUPolicy::getVictim(Index set) const { - // assert(m_assoc != 0); - Time time, smallest_time; - Index smallest_index; - - smallest_index = 0; - smallest_time = m_last_ref_ptr[set][0]; - - for (unsigned int i=0; i < m_assoc; i++) { - time = m_last_ref_ptr[set][i]; - //assert(m_cache[cacheSet][i].m_Permission != AccessPermission_NotPresent); - - if (time < smallest_time){ - smallest_index = i; - smallest_time = time; +inline Index +LRUPolicy::getVictim(Index set) const +{ + // assert(m_assoc != 0); + Time time, smallest_time; + Index smallest_index; + + smallest_index = 0; + smallest_time = m_last_ref_ptr[set][0]; + + for (unsigned i = 0; i < m_assoc; i++) { + time = m_last_ref_ptr[set][i]; + // assert(m_cache[cacheSet][i].m_Permission != + // AccessPermission_NotPresent); + + if (time < smallest_time) { + smallest_index = i; + smallest_time = time; + } } - } - // DEBUG_EXPR(CACHE_COMP, MedPrio, cacheSet); - // DEBUG_EXPR(CACHE_COMP, MedPrio, smallest_index); - // DEBUG_EXPR(CACHE_COMP, MedPrio, m_cache[cacheSet][smallest_index]); - // DEBUG_EXPR(CACHE_COMP, MedPrio, *this); + // DEBUG_EXPR(CACHE_COMP, MedPrio, cacheSet); + // DEBUG_EXPR(CACHE_COMP, MedPrio, smallest_index); + // DEBUG_EXPR(CACHE_COMP, MedPrio, m_cache[cacheSet][smallest_index]); + // DEBUG_EXPR(CACHE_COMP, MedPrio, *this); - return smallest_index; + return smallest_index; } -#endif // PSEUDOLRUBITS_H +#endif // __MEM_RUBY_SYSTEM_LRUPOLICY_HH__ |