CohereSim: A Bus-based Cache Simulator  v3.3
A tool for education in computing - learn about coherence protocols, replacement policies, and SMP vs DSM
Public Member Functions | Private Attributes
LRU Class Reference

The LRU replacement policy. More...

#include <lru.h>

Inheritance diagram for LRU:
Inheritance graph
[legend]
Collaboration diagram for LRU:
Collaboration graph
[legend]

Public Member Functions

 LRU (CacheABC &cache, uint32_t num_sets, uint32_t assoc)
 Construct a new LRU replacement policy. More...
 
uint32_t getVictim (uint32_t set_idx)
 Determine which line of a range of lines to replace. More...
 
void touch (uint32_t set_idx, uint32_t way_idx)
 Notify the replacement policy that a line was just accessed. More...
 
void printState (uint32_t set_idx)
 Print out the replacer's internal state. More...
 
- Public Member Functions inherited from ReplacementPolicy
 ReplacementPolicy (CacheABC &cache, uint32_t num_sets, uint32_t assoc)
 Construct a new replacement policy. More...
 

Private Attributes

uint32_t ** age
 Line age, in set accesses since last line access.
 

Additional Inherited Members

- Protected Attributes inherited from ReplacementPolicy
CacheABCcache
 The parent cache.
 
uint32_t num_sets
 The number of sets in the cache.
 
uint32_t assoc
 The associativity of the cache.
 

Detailed Description

The LRU replacement policy.

Constructor & Destructor Documentation

◆ LRU()

LRU::LRU ( CacheABC cache,
uint32_t  num_sets,
uint32_t  assoc 
)

Construct a new LRU replacement policy.

Parameters
cacheThe parent cache
num_setsThe number of sets in the cache
assocThe associativity of the chace

Member Function Documentation

◆ getVictim()

uint32_t LRU::getVictim ( uint32_t  set_idx)
virtual

Determine which line of a range of lines to replace.

Parameters
set_idxThe index of the set to choose from
Returns
The chosen line's index within the set (0 to assoc-1)

Reimplemented from ReplacementPolicy.

◆ printState()

void LRU::printState ( uint32_t  set_idx)
virtual

Print out the replacer's internal state.

Parameters
set_idxThe index of the set

Reimplemented from ReplacementPolicy.

◆ touch()

void LRU::touch ( uint32_t  set_idx,
uint32_t  way_idx 
)
virtual

Notify the replacement policy that a line was just accessed.

Parameters
set_idxThe index of the set containing the line
way_idxThe index of the way containing the line (0 to assoc-1)

Reimplemented from ReplacementPolicy.


The documentation for this class was generated from the following files: