#include <Thread.h>
Onikiri::Threadに対する継承グラフ
Public メソッド | |
void | Activate (bool active) |
void | AddOpRetiredID (u64 num) |
void | AddOpSerialID (u64 num) |
CheckpointMaster * | GetCheckpointMaster () const |
Core * | GetCore () const |
PC | GetFetchPC () const |
InorderList * | GetInorderList () const |
int | GetLocalThreadID () const |
MemDepPredIF * | GetMemDepPred () const |
MemOrderManager * | GetMemOrderManager () const |
u64 | GetOpRetiredID () |
u64 | GetOpSerialID () |
Recoverer * | GetRecoverer () const |
RegDepPredIF * | GetRegDepPred () const |
int | GetTID (const int index) |
int | GetTID () |
void | Initialize (InitPhase phase) |
void | InitializeContext (PC pc) |
bool | IsActive () |
void | SetFetchPC (const PC &pc) |
void | SetLocalThreadID (int localTID) |
void | SetThreadCount (const int count) |
Thread () | |
virtual | ~Thread () |
Thread::Thread | ( | ) |
Thread.cpp の 43 行で定義されています。
00044 { 00045 m_emulator = 0; 00046 m_core = 0; 00047 m_inorderList = 0; 00048 m_checkpointMaster = 0; 00049 m_memOrderManager = 0; 00050 m_regDepPred = 0; 00051 m_memDepPred = 0; 00052 00053 m_localTID = TID_INVALID; 00054 m_active = false; 00055 m_serialOpID = 0; 00056 }
Thread::~Thread | ( | ) | [virtual] |
Thread.cpp の 58 行で定義されています。
参照先 Onikiri::PhysicalResourceNode::ReleaseParam().
00059 { 00060 ReleaseParam(); 00061 }
関数の呼び出しグラフ:
void Thread::Activate | ( | bool | active | ) |
Thread.cpp の 133 行で定義されています。
参照元 Onikiri::Retirer::FinishThread().
Here is the caller graph for this function:
void Thread::AddOpRetiredID | ( | u64 | num | ) |
Thread.cpp の 162 行で定義されています。
参照元 Onikiri::Fetcher::Update().
Here is the caller graph for this function:
void Thread::AddOpSerialID | ( | u64 | num | ) |
Thread.cpp の 167 行で定義されています。
参照元 Onikiri::Fetcher::Update().
Here is the caller graph for this function:
CheckpointMaster* Onikiri::Thread::GetCheckpointMaster | ( | ) | const [inline] |
Core* Onikiri::Thread::GetCore | ( | ) | const [inline] |
参照元 Onikiri::Recoverer::RecoverBPredMiss()・Onikiri::Recoverer::RecoverException()・Onikiri::InorderSystem::Run().
Here is the caller graph for this function:
PC Thread::GetFetchPC | ( | ) | const |
Thread.cpp の 147 行で定義されています。
参照元 Onikiri::Fetcher::Evaluate()・Onikiri::Fetcher::Update().
Here is the caller graph for this function:
InorderList* Onikiri::Thread::GetInorderList | ( | ) | const [inline] |
参照元 Onikiri::Fetcher::CanFetch()・Onikiri::Fetcher::Evaluate()・Onikiri::Retirer::EvaluateCommit()・Onikiri::Fetcher::Fetch()・Onikiri::Op::Initialize()・Onikiri::Fetcher::IsSerializingRequired()・Onikiri::InorderSystem::Run().
Here is the caller graph for this function:
int Thread::GetLocalThreadID | ( | ) | const |
Thread.cpp の 128 行で定義されています。
参照元 Onikiri::Op::Initialize().
Here is the caller graph for this function:
MemDepPredIF* Onikiri::Thread::GetMemDepPred | ( | ) | const [inline] |
MemOrderManager* Onikiri::Thread::GetMemOrderManager | ( | ) | const [inline] |
参照元 Onikiri::Op::GetFirstConsumer()・Onikiri::InorderList::Initialize()・Onikiri::Op::Read()・Onikiri::Recoverer::RescheduleConsumers()・Onikiri::InorderSystem::Run()・Onikiri::OpFinishEvent::Update()・Onikiri::Op::Write().
Here is the caller graph for this function:
u64 Thread::GetOpRetiredID | ( | ) |
Thread.cpp の 152 行で定義されています。
参照元 Onikiri::Fetcher::Fetch().
Here is the caller graph for this function:
u64 Thread::GetOpSerialID | ( | ) |
Thread.cpp の 157 行で定義されています。
参照元 Onikiri::Fetcher::Fetch().
Here is the caller graph for this function:
Recoverer* Onikiri::Thread::GetRecoverer | ( | ) | const [inline] |
RegDepPredIF* Onikiri::Thread::GetRegDepPred | ( | ) | const [inline] |
参照元 Onikiri::InorderList::Initialize()・Onikiri::InorderSystem::Run().
Here is the caller graph for this function:
int Thread::GetTID | ( | const int | index | ) | [virtual] |
Onikiri::PhysicalResourceBaseを再定義しています。
Thread.cpp の 118 行で定義されています。
参照先 Onikiri::PhysicalResourceBase::GetTID().
00119 { 00120 return PhysicalResourceNode::GetTID( index ); 00121 }
関数の呼び出しグラフ:
int Thread::GetTID | ( | ) |
Thread.cpp の 113 行で定義されています。
参照元 InitializeContext()・SetFetchPC().
00114 { 00115 return GetTID(0); 00116 }
Here is the caller graph for this function:
void Thread::Initialize | ( | InitPhase | phase | ) |
Thread.cpp の 63 行で定義されています。
参照先 Onikiri::PhysicalResourceNode::CheckNodeInitialized()・Onikiri::PhysicalResourceNode::INIT_POST_CONNECTION・Onikiri::PhysicalResourceNode::INIT_PRE_CONNECTION・Onikiri::ParamExchange::LoadParam()・Onikiri::CheckpointMaster::SLOT_FETCH.
00064 { 00065 if(phase == INIT_PRE_CONNECTION){ 00066 LoadParam(); 00067 } 00068 else if(phase == INIT_POST_CONNECTION){ 00069 00070 CheckNodeInitialized( "checkpointMaster", m_checkpointMaster ); 00071 CheckNodeInitialized( "emulator", m_emulator ); 00072 CheckNodeInitialized( "inorderList", m_inorderList ); 00073 CheckNodeInitialized( "memOrderManager", m_memOrderManager ); 00074 CheckNodeInitialized( "checkpointMaster", m_checkpointMaster ); 00075 CheckNodeInitialized( "regDepPred", m_regDepPred ); 00076 CheckNodeInitialized( "memDepPred", m_memDepPred ); 00077 CheckNodeInitialized( "core", m_core ); 00078 CheckNodeInitialized( "recoverer", m_recoverer ); 00079 00080 // CheckpointedData 00081 m_fetchPC.Initialize( 00082 m_checkpointMaster, 00083 CheckpointMaster::SLOT_FETCH 00084 ); 00085 00086 m_retiredOpID.Initialize( 00087 m_checkpointMaster, 00088 CheckpointMaster::SLOT_FETCH 00089 ); 00090 m_retiredOpID.GetCurrent() = 0; 00091 } 00092 }
関数の呼び出しグラフ:
void Thread::InitializeContext | ( | PC | pc | ) |
Thread.cpp の 99 行で定義されています。
参照先 GetTID()・SetFetchPC()・THROW_RUNTIME_ERROR・Onikiri::LogicalData::tid.
00100 { 00101 int pcTID = pc.tid; 00102 if( pcTID != GetTID(0) ){ 00103 THROW_RUNTIME_ERROR( 00104 "The TID of 'pc' (%d) and the TID of this 'Thread' (%d) are different", 00105 pcTID, 00106 GetTID(0) 00107 ); 00108 } 00109 00110 SetFetchPC( pc ); 00111 }
関数の呼び出しグラフ:
bool Thread::IsActive | ( | ) |
Thread.cpp の 94 行で定義されています。
参照元 Onikiri::Retirer::FinishThread().
Here is the caller graph for this function:
void Thread::SetFetchPC | ( | const PC & | pc | ) |
Thread.cpp の 138 行で定義されています。
参照先 ASSERT・GetTID()・Onikiri::LogicalData::tid.
参照元 InitializeContext()・Onikiri::Recoverer::RecoverBPredMiss()・Onikiri::Recoverer::RecoverByRefetch()・Onikiri::Fetcher::Update().
00139 { 00140 ASSERT( 00141 pc.tid == GetTID(0), 00142 "The passed pc has invalid tid." 00143 ); 00144 *m_fetchPC = pc; 00145 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
void Thread::SetLocalThreadID | ( | int | localTID | ) |
void Thread::SetThreadCount | ( | const int | count | ) | [virtual] |
Onikiri::PhysicalResourceBaseを再定義しています。
Thread.cpp の 172 行で定義されています。
参照先 Onikiri::PhysicalResourceBase::SetThreadCount()・THROW_RUNTIME_ERROR.
00173 { 00174 if( count != 1 ){ 00175 THROW_RUNTIME_ERROR( "The tid count of the 'Thread' class must be 1" ); 00176 } 00177 PhysicalResourceNode::SetThreadCount( count ); 00178 }
関数の呼び出しグラフ: