gem5
v20.1.0.0
|
Class that has various thread state, such as the status, the current instruction being processed, whether or not the thread has a trap pending or is being externally updated, the ThreadContext pointer, etc. More...
#include <commit.hh>
Public Types | |
typedef ThreadContext::Status | Status |
typedef Impl::O3CPU | O3CPU |
Public Member Functions | |
O3ThreadState (O3CPU *_cpu, int _thread_num, Process *_process) | |
void | serialize (CheckpointOut &cp) const override |
void | unserialize (CheckpointIn &cp) override |
ThreadContext * | getTC () |
Returns a pointer to the TC of this thread. More... | |
void | syscall () |
Handles the syscall. More... | |
Public Attributes | |
PCEventQueue | pcEventQueue |
EventQueue | comInstEventQueue |
An instruction-based event queue. More... | |
bool | noSquashFromTC |
bool | trapPending |
Whether or not the thread is currently waiting on a trap, and thus able to be externally updated without squashing. More... | |
std::unique_ptr< BaseHTMCheckpoint > | htmCheckpoint |
Pointer to the hardware transactional memory checkpoint. More... | |
ThreadContext * | tc |
Pointer to the ThreadContext of this thread. More... | |
Private Attributes | |
O3CPU * | cpu |
Pointer to the CPU. More... | |
Class that has various thread state, such as the status, the current instruction being processed, whether or not the thread has a trap pending or is being externally updated, the ThreadContext pointer, etc.
It also handles anything related to a specific thread's process, such as syscalls and checking valid addresses.
typedef Impl::O3CPU O3ThreadState< Impl >::O3CPU |
Definition at line 66 of file thread_state.hh.
typedef ThreadContext::Status O3ThreadState< Impl >::Status |
Definition at line 65 of file thread_state.hh.
|
inline |
Definition at line 98 of file thread_state.hh.
|
inline |
Returns a pointer to the TC of this thread.
Definition at line 130 of file thread_state.hh.
References O3ThreadState< Impl >::tc.
|
inlineoverride |
Definition at line 105 of file thread_state.hh.
References ThreadState::serialize(), and O3ThreadState< Impl >::tc.
|
inline |
Handles the syscall.
Definition at line 133 of file thread_state.hh.
References O3ThreadState< Impl >::tc.
|
inlineoverride |
Definition at line 113 of file thread_state.hh.
References O3ThreadState< Impl >::noSquashFromTC, O3ThreadState< Impl >::tc, and ThreadState::unserialize().
EventQueue O3ThreadState< Impl >::comInstEventQueue |
An instruction-based event queue.
Used for scheduling events based on number of instructions committed.
Definition at line 78 of file thread_state.hh.
|
private |
Pointer to the CPU.
Definition at line 70 of file thread_state.hh.
std::unique_ptr<BaseHTMCheckpoint> O3ThreadState< Impl >::htmCheckpoint |
Pointer to the hardware transactional memory checkpoint.
Definition at line 96 of file thread_state.hh.
bool O3ThreadState< Impl >::noSquashFromTC |
Definition at line 88 of file thread_state.hh.
Referenced by O3ThreadState< Impl >::unserialize().
PCEventQueue O3ThreadState< Impl >::pcEventQueue |
Definition at line 73 of file thread_state.hh.
ThreadContext* O3ThreadState< Impl >::tc |
Pointer to the ThreadContext of this thread.
Definition at line 127 of file thread_state.hh.
Referenced by O3ThreadState< Impl >::getTC(), O3ThreadState< Impl >::serialize(), O3ThreadState< Impl >::syscall(), and O3ThreadState< Impl >::unserialize().
bool O3ThreadState< Impl >::trapPending |
Whether or not the thread is currently waiting on a trap, and thus able to be externally updated without squashing.
Definition at line 93 of file thread_state.hh.