#include <CounterBasedHitMissPred.h>
Onikiri::CounterBasedHitMissPredに対する継承グラフ
Public メソッド | |
BEGIN_PARAM_MAP (GetParamPath()) CounterBasedHitMissPred() | |
virtual void | Commit (OpIterator op, bool hit) |
virtual void | Finished (OpIterator op, bool hit) |
void | Initialize (InitPhase phase) |
virtual bool | Predict (OpIterator op) |
~CounterBasedHitMissPred () |
CounterBasedHitMissPred.h の 48 行で定義されています。
CounterBasedHitMissPred::~CounterBasedHitMissPred | ( | ) |
CounterBasedHitMissPred.cpp の 49 行で定義されています。
参照先 Onikiri::PhysicalResourceNode::ReleaseParam().
00050 { 00051 ReleaseParam(); 00052 }
関数の呼び出しグラフ:
Onikiri::CounterBasedHitMissPred::BEGIN_PARAM_MAP | ( | GetParamPath() | ) |
void CounterBasedHitMissPred::Commit | ( | OpIterator | op, | |
bool | hit | |||
) | [virtual] |
Onikiri::HitMissPredIFを実装しています。
CounterBasedHitMissPred.cpp の 98 行で定義されています。
00099 { 00100 size_t index = (size_t)GetArrayIndex( op->GetPC() ); 00101 if(hit) 00102 m_table[index].inc(); 00103 else 00104 m_table[index].dec(); 00105 }
virtual void Onikiri::CounterBasedHitMissPred::Finished | ( | OpIterator | op, | |
bool | hit | |||
) | [inline, virtual] |
void CounterBasedHitMissPred::Initialize | ( | InitPhase | phase | ) |
CounterBasedHitMissPred.cpp の 54 行で定義されています。
参照先 Onikiri::PhysicalResourceNode::INIT_PRE_CONNECTION・Onikiri::ParamExchange::LoadParam().
00055 { 00056 if(phase == INIT_PRE_CONNECTION){ 00057 LoadParam(); 00058 00059 u8 max = (1 << m_counterBits) - 1; 00060 m_table.construct( 00061 1 << m_entryBits, // size 00062 (max + 1) / 2, // init 00063 0, // min 00064 max, // max 00065 1, // add 00066 2, // sub 00067 (max + 1) / 2 // threshold 00068 ); 00069 } 00070 }
関数の呼び出しグラフ:
bool CounterBasedHitMissPred::Predict | ( | OpIterator | op | ) | [virtual] |
Onikiri::HitMissPredIFを実装しています。
CounterBasedHitMissPred.cpp の 107 行で定義されています。
00108 { 00109 size_t index = (size_t)GetArrayIndex( op->GetPC() ); 00110 return m_table[index].above_threshold(); 00111 }