Otawa
0.10
|
This class is used to represent an abstract cache line state. More...
#include <otawa/ets/AbstractCacheState.h>
Public Types | |
enum | categorisation_t { ALWAYS_MISS = 0, ALWAYS_HIT = 1, FIRST_MISS = 2, CONFLICT = 3 } |
typedef enum otawa::ets::AbstractCacheState::categorisation_t | categorisation_t |
Public Member Functions | |
AbstractCacheState (AbstractCacheState *acs) | |
Build a new ACS with an other: acs. More... | |
AbstractCacheState (int which_line) | |
Build a new ACS with the number of the cache line. More... | |
~AbstractCacheState (void) | |
bool | areDifferent (AbstractCacheState *other) |
Return true if other is not equal whith this, else return false. More... | |
void | join (AbstractCacheState *state1, AbstractCacheState *state2) |
Join state1 and state2 to this, according to C. More... | |
void | assignment (AbstractCacheState *other) |
A simple assignment from other to this. More... | |
bool | byConflict () |
Look if it is conflict, that is to say if they are many true bit of each set. More... | |
Public Attributes | |
genstruct::Vector< BitVector * > | cache_state |
Represent the cache state (table of set) with all l-blocks being in this line. More... | |
genstruct::HashTable < address_t, int > | htable |
<l-block, its index in cache_state> More... | |
int | cache_line |
It is the number of the cache line. More... | |
categorisation_t | categorisation |
Categorisation (a_h, a_m, f_m, c) according to F. More... | |
genstruct::HashTable < address_t, int > | hcat |
<l-block, its categorisation> More... | |
This class is used to represent an abstract cache line state.
typedef enum otawa::ets::AbstractCacheState::categorisation_t otawa::ets::AbstractCacheState::categorisation_t |
|
inline |
Build a new ACS with an other: acs.
acs | AbstractCacheState to assign. |
References cache_line, cache_state, hcat, and htable.
|
inline |
Build a new ACS with the number of the cache line.
which_line | The cache line to simulate. |
|
inline |
bool otawa::ets::AbstractCacheState::areDifferent | ( | AbstractCacheState * | other | ) |
Return true if other is not equal whith this, else return false.
other | AbstractCacheState to compare. |
References cache_state.
Referenced by otawa::ets::ACSComputation::applyProcess().
void otawa::ets::AbstractCacheState::assignment | ( | AbstractCacheState * | other | ) |
A simple assignment from other to this.
other | AbstractCacheState to assign. |
References cache_line, cache_state, hcat, and htable.
Referenced by otawa::ets::ACSComputation::applyProcess().
bool otawa::ets::AbstractCacheState::byConflict | ( | ) |
Look if it is conflict, that is to say if they are many true bit of each set.
References cache_state.
Referenced by otawa::ets::ACSComputation::applyProcess().
void otawa::ets::AbstractCacheState::join | ( | AbstractCacheState * | state1, |
AbstractCacheState * | state2 | ||
) |
Join state1 and state2 to this, according to C.
Ferdinand (Join - Must).
state1 | AbstractCacheState to merge. |
state2 | AbstractCacheState to merge. |
References cache_state, clear(), hcat, and htable.
Referenced by otawa::ets::ACSComputation::applyProcess().
otawa::ets::AbstractCacheState::cache_line |
It is the number of the cache line.
Referenced by AbstractCacheState(), otawa::ets::ACSComputation::applyProcess(), assignment(), and otawa::ets::ACSComputation::initialization().
otawa::ets::AbstractCacheState::cache_state |
Represent the cache state (table of set) with all l-blocks being in this line.
Referenced by AbstractCacheState(), otawa::ets::ACSComputation::applyProcess(), areDifferent(), assignment(), byConflict(), join(), and otawa::ets::ACSComputation::processAST().
otawa::ets::AbstractCacheState::categorisation |
Categorisation (a_h, a_m, f_m, c) according to F.
Mueller in 1994.
otawa::ets::AbstractCacheState::hcat |
<l-block, its categorisation>
Referenced by AbstractCacheState(), otawa::ets::ACSComputation::applyProcess(), assignment(), and join().
otawa::ets::AbstractCacheState::htable |
<l-block, its index in cache_state>
Referenced by AbstractCacheState(), otawa::ets::ACSComputation::applyProcess(), assignment(), otawa::ets::ACSComputation::initialization(), join(), and otawa::ets::ACSComputation::processAST().