#include <ooo_cpu.h>
|
void | initialize () override final |
|
long | operate () override final |
|
void | begin_phase () override final |
|
void | end_phase (unsigned cpu) override final |
|
void | initialize_instruction () |
|
long | check_dib () |
|
long | fetch_instruction () |
|
long | promote_to_decode () |
|
long | decode_instruction () |
|
long | dispatch_instruction () |
|
long | schedule_instruction () |
|
long | execute_instruction () |
|
long | operate_lsq () |
|
long | complete_inflight_instruction () |
|
long | handle_memory_return () |
|
long | retire_rob () |
|
bool | do_init_instruction (ooo_model_instr &instr) |
|
bool | do_predict_branch (ooo_model_instr &instr) |
|
void | do_check_dib (ooo_model_instr &instr) |
|
bool | do_fetch_instruction (std::deque< ooo_model_instr >::iterator begin, std::deque< ooo_model_instr >::iterator end) |
|
void | do_dib_update (const ooo_model_instr &instr) |
|
void | do_scheduling (ooo_model_instr &instr) |
|
void | do_execution (ooo_model_instr &rob_it) |
|
void | do_memory_scheduling (ooo_model_instr &instr) |
|
void | do_complete_execution (ooo_model_instr &instr) |
|
void | do_sq_forward_to_lq (LSQ_ENTRY &sq_entry, LSQ_ENTRY &lq_entry) |
|
void | do_finish_store (const LSQ_ENTRY &sq_entry) |
|
bool | do_complete_store (const LSQ_ENTRY &sq_entry) |
|
bool | execute_load (const LSQ_ENTRY &lq_entry) |
|
uint64_t | roi_instr () const |
|
uint64_t | roi_cycle () const |
|
uint64_t | sim_instr () const |
|
uint64_t | sim_cycle () const |
|
void | print_deadlock () override final |
|
void | impl_initialize_branch_predictor () |
|
void | impl_last_branch_result (uint64_t ip, uint64_t target, uint8_t taken, uint8_t branch_type) |
|
uint8_t | impl_predict_branch (uint64_t ip) |
|
void | impl_initialize_btb () |
|
void | impl_update_btb (uint64_t ip, uint64_t predicted_target, uint8_t taken, uint8_t branch_type) |
|
std::pair< uint64_t, uint8_t > | impl_btb_prediction (uint64_t ip) |
|
template<unsigned long long B_FLAG, unsigned long long T_FLAG> |
| O3_CPU (Builder< B_FLAG, T_FLAG > b) |
|
| operable (double scale) |
|
long | _operate () |
|
◆ dib_type
◆ stats_type
◆ O3_CPU()
template<unsigned long long B_FLAG, unsigned long long T_FLAG>
O3_CPU::O3_CPU |
( |
Builder< B_FLAG, T_FLAG > |
b | ) |
|
|
inlineexplicit |
◆ begin_phase()
void O3_CPU::begin_phase |
( |
| ) |
|
|
finaloverridevirtual |
◆ check_dib()
long O3_CPU::check_dib |
( |
| ) |
|
◆ complete_inflight_instruction()
long O3_CPU::complete_inflight_instruction |
( |
| ) |
|
◆ decode_instruction()
long O3_CPU::decode_instruction |
( |
| ) |
|
◆ dispatch_instruction()
long O3_CPU::dispatch_instruction |
( |
| ) |
|
◆ do_check_dib()
◆ do_complete_execution()
◆ do_complete_store()
bool O3_CPU::do_complete_store |
( |
const LSQ_ENTRY & |
sq_entry | ) |
|
◆ do_dib_update()
◆ do_execution()
◆ do_fetch_instruction()
◆ do_finish_store()
void O3_CPU::do_finish_store |
( |
const LSQ_ENTRY & |
sq_entry | ) |
|
◆ do_init_instruction()
◆ do_memory_scheduling()
◆ do_predict_branch()
◆ do_scheduling()
◆ do_sq_forward_to_lq()
◆ end_phase()
void O3_CPU::end_phase |
( |
unsigned |
cpu | ) |
|
|
finaloverridevirtual |
◆ execute_instruction()
long O3_CPU::execute_instruction |
( |
| ) |
|
◆ execute_load()
bool O3_CPU::execute_load |
( |
const LSQ_ENTRY & |
lq_entry | ) |
|
◆ fetch_instruction()
long O3_CPU::fetch_instruction |
( |
| ) |
|
◆ handle_memory_return()
long O3_CPU::handle_memory_return |
( |
| ) |
|
◆ impl_btb_prediction()
std::pair<uint64_t, uint8_t> O3_CPU::impl_btb_prediction |
( |
uint64_t |
ip | ) |
|
|
inline |
◆ impl_initialize_branch_predictor()
void O3_CPU::impl_initialize_branch_predictor |
( |
| ) |
|
|
inline |
◆ impl_initialize_btb()
void O3_CPU::impl_initialize_btb |
( |
| ) |
|
|
inline |
◆ impl_last_branch_result()
void O3_CPU::impl_last_branch_result |
( |
uint64_t |
ip, |
|
|
uint64_t |
target, |
|
|
uint8_t |
taken, |
|
|
uint8_t |
branch_type |
|
) |
| |
|
inline |
◆ impl_predict_branch()
uint8_t O3_CPU::impl_predict_branch |
( |
uint64_t |
ip | ) |
|
|
inline |
◆ impl_update_btb()
void O3_CPU::impl_update_btb |
( |
uint64_t |
ip, |
|
|
uint64_t |
predicted_target, |
|
|
uint8_t |
taken, |
|
|
uint8_t |
branch_type |
|
) |
| |
|
inline |
◆ initialize()
void O3_CPU::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ initialize_instruction()
void O3_CPU::initialize_instruction |
( |
| ) |
|
◆ operate()
◆ operate_lsq()
long O3_CPU::operate_lsq |
( |
| ) |
|
◆ print_deadlock()
void O3_CPU::print_deadlock |
( |
| ) |
|
|
finaloverridevirtual |
◆ promote_to_decode()
long O3_CPU::promote_to_decode |
( |
| ) |
|
◆ retire_rob()
long O3_CPU::retire_rob |
( |
| ) |
|
◆ roi_cycle()
uint64_t O3_CPU::roi_cycle |
( |
| ) |
const |
|
inline |
◆ roi_instr()
uint64_t O3_CPU::roi_instr |
( |
| ) |
const |
|
inline |
◆ schedule_instruction()
long O3_CPU::schedule_instruction |
( |
| ) |
|
◆ sim_cycle()
uint64_t O3_CPU::sim_cycle |
( |
| ) |
const |
|
inline |
◆ sim_instr()
uint64_t O3_CPU::sim_instr |
( |
| ) |
const |
|
inline |
◆ begin_phase_cycle
uint64_t O3_CPU::begin_phase_cycle = 0 |
◆ begin_phase_instr
uint64_t O3_CPU::begin_phase_instr = 0 |
◆ BRANCH_MISPREDICT_PENALTY
const unsigned O3_CPU::BRANCH_MISPREDICT_PENALTY |
◆ cpu
◆ DECODE_BUFFER
◆ DECODE_BUFFER_SIZE
const std::size_t O3_CPU::DECODE_BUFFER_SIZE |
◆ DECODE_LATENCY
const unsigned O3_CPU::DECODE_LATENCY |
◆ DECODE_WIDTH
const long int O3_CPU::DECODE_WIDTH |
◆ DIB
◆ DISPATCH_BUFFER
◆ DISPATCH_BUFFER_SIZE
const std::size_t O3_CPU::DISPATCH_BUFFER_SIZE |
◆ DISPATCH_LATENCY
const unsigned O3_CPU::DISPATCH_LATENCY |
◆ DISPATCH_WIDTH
const long int O3_CPU::DISPATCH_WIDTH |
◆ EXEC_LATENCY
const unsigned O3_CPU::EXEC_LATENCY |
◆ EXEC_WIDTH
const long int O3_CPU::EXEC_WIDTH |
◆ fetch_resume_cycle
uint64_t O3_CPU::fetch_resume_cycle = 0 |
◆ FETCH_WIDTH
const long int O3_CPU::FETCH_WIDTH |
◆ finish_phase_cycle
uint64_t O3_CPU::finish_phase_cycle = 0 |
◆ finish_phase_instr
uint64_t O3_CPU::finish_phase_instr = 0 |
◆ IFETCH_BUFFER
◆ IFETCH_BUFFER_SIZE
const std::size_t O3_CPU::IFETCH_BUFFER_SIZE |
◆ IN_QUEUE_SIZE
◆ input_queue
◆ L1D_BANDWIDTH
const long int O3_CPU::L1D_BANDWIDTH |
◆ L1D_bus
◆ l1i
◆ L1I_BANDWIDTH
const long int O3_CPU::L1I_BANDWIDTH |
◆ L1I_bus
◆ last_heartbeat_cycle
uint64_t O3_CPU::last_heartbeat_cycle = 0 |
◆ last_heartbeat_instr
uint64_t O3_CPU::last_heartbeat_instr = 0 |
◆ LQ
std::vector<std::optional<LSQ_ENTRY> > O3_CPU::LQ |
◆ LQ_WIDTH
const long int O3_CPU::LQ_WIDTH |
◆ module_pimpl
◆ next_print_instruction
uint64_t O3_CPU::next_print_instruction = STAT_PRINTING_PERIOD |
◆ num_base_update_uops
uint64_t O3_CPU::num_base_update_uops = 0 |
◆ num_retired
uint64_t O3_CPU::num_retired = 0 |
◆ reg_producers
std::array<std::vector<std::reference_wrapper<ooo_model_instr> >, std::numeric_limits<uint8_t>::max() + 1> O3_CPU::reg_producers |
◆ RETIRE_WIDTH
const long int O3_CPU::RETIRE_WIDTH |
◆ ROB
◆ ROB_SIZE
const std::size_t O3_CPU::ROB_SIZE |
◆ roi_stats
◆ SCHEDULER_SIZE
const long int O3_CPU::SCHEDULER_SIZE |
◆ SCHEDULING_LATENCY
const unsigned O3_CPU::SCHEDULING_LATENCY |
◆ show_heartbeat
bool O3_CPU::show_heartbeat = true |
◆ sim_stats
◆ SQ
◆ SQ_SIZE
const std::size_t O3_CPU::SQ_SIZE |
◆ SQ_WIDTH
const long int O3_CPU::SQ_WIDTH |
The documentation for this class was generated from the following files: